gpt4 book ai didi

ruby-on-rails - Activejob 反序列化对象失败

转载 作者:行者123 更新时间:2023-12-03 07:08:34 24 4
gpt4 key购买 nike

为了测试我的邮件是否已发送,我正在运行 heroku run Rails c -a my_app。然后我将作业排队,并且排队正常。但是,当我转到 Redis 并查看排队的作业时,该作业不在那里。相反,它处于“重试”状态。

这就是我所看到的:

{"重试":true,"queue":"default","class":"ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper","args":[{"job_class":"SendMailJob ","job_id":"4b4ba46f-94d7-45cd-b923-ec1678c73076","queue_name":"默认","参数":["any_help",{"_aj_globalid":"gid://gemfeedapi/User/546641393834330002000000 "}]}],"jid":"f89235d7ab19f605ed0461a1","enqueued_at":1424175756.9351726,"error_message":"尝试反序列化参数时出错:\n问题:\n 未找到具有 id 的类 User 的文档) 546641393834330002000000。\n摘要:\n 使用 ID 或 ID 数组调用 User.find 时,每个参数必须与数据库中的文档匹配,否则将引发此错误。搜索的 ID 为:546641393834330002000000 .. .(总共 1 个)并且未找到以下 id:546641393834330002000000。\n解决方案:\n 搜索数据库中的 id 或将 Mongoid.raise_not_found_error 配置选项设置为 false,这将导致返回 nil,而不是返回搜索单个 id 时引发此错误,或搜索多个 id 时仅引发匹配的文档。","error_class":"ActiveJob::DeserializationError","failed_at":1424175773.317896,"retry_count":0}

但是,对象位于数据库中。

我尝试添加 after_create 回调 (Mongoid),但没有任何区别。

知道发生了什么吗?

谢谢。

最佳答案

Sidekiq 速度非常快,它会在数据库提交事务之前执行您的作业。使用 after_commit 创建作业。

关于ruby-on-rails - Activejob 反序列化对象失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28561508/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com