我遇到一个奇怪的问题,导致我的Heroku工作人员崩溃。我们使用Ruby on Rails和delayed_job来完成后台作业。我正在使用Vero gem将作业传递给delayed_job。
这是我用来“识别”Vero用户的电话:
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?
谢谢!
答案 0 :(得分:2)
查看此用户。似乎他通过db中字段的编码输入了一些不接受的数据。 你在使用utf-8吗?如果他进入utf-16,你可以用ruby将它转换为utf-8