我遇到了一个奇怪的问题,导致我的Heroku工人崩溃。我们使用Ruby on Rails和delayed_job作为后台作业。我使用Vero gem将工作传递给delayed_job。Delayed_job崩溃的Heroku工人(YAML问题?)
这是调用我做出“鉴定”用户维洛:
after_save { self.identify! }
然后将作业中,看起来像这样的队列:
--- !ruby/object:Vero::Api::Workers::Users::TrackAPI
domain: https://api.getvero.com
options:
:email: ******@gmail.com
:data:
:email: ******@gmail.com
:name: ? ?
:first_name: ?
:last_name: ?
:school_id: -1
这个问题似乎是那些问号。我不知道他们为什么显示在那里而不是一串文字。这是出现的错误:
Psych::SyntaxError: (<unknown>): mapping keys are not allowed in this context at line 7 column 14
不幸的是,而不是工作只是失败..它实际上是崩溃的工人..不允许用于另一个要处理的工作。
有没有人遇到过这个问题?我如何格式化YAML使其不会使工作人员崩溃?
谢谢!
嘿@ dre-hh,谢谢你的回答!表格设置是......类型:InnoDB,编码:cp1252西欧(latin1),整理:latin1_swedish_ci。所以我想我们不使用utf-8。你认为这是问题吗? – criticerz 2014-10-27 22:06:39
在您的db中找到用户,它的'identify!'请求已生成此worker。 'User.find_by_email'chuck_testa @ example.com''。看看他的名字和first_name。同时检查数据库记录。我强烈怀疑,这个问题来自用户输入名称,但不能由cp1252处理的符号。所以你将不得不手动解析输入。如果你使用UTF-8,它将被保存为一些无法识别的符号,但是整个字符串不会被破坏。看到http://stackoverflow.com/questions/2708958/differences-between-utf8-and-latin1 – 2014-10-28 13:56:50
我想这些问号 是这个'Mojibake'的stackoverflow帖子提到 – 2014-10-28 14:05:05