将参数从 Ruby 脚本发送到 SidekiQ 作业时出现问题

problem to send parameter from ruby script to sidekiq job

提问人:YasuoPlayer 提问时间:11/16/2023 更新时间:11/16/2023 访问量:62

问:

我是 Sidekiq 的新手,我希望得到您的帮助。 我制作了一个 ruby 脚本,从 mysql 获取数据并将其发送到 sidekiq 作业,该作业会以 json 格式进行转换并将它们保存在 mongoDB 中。 为了将此 dato 发送到 sidekiq 作业,我在我的 ruby 脚本中添加了以下代码:

JobName.perform_async(interesting_data)

在我的 JobName.rb 中,我通过以下方式收到这个字符串数组:

class JobName
include Sidekiq::Job
def perform(interesting_data)
puts(interesting_data)
.
.
MongoDB string connection
.
write in mongoDB
.
end

我首先执行 Ruby 脚本。 后来我通过以下方式启动作业:作业运行,但是当我在mongoDB中访问时,我什么也看不到。 这个参数交换是正确的,还是我做了另一件事? 正确的方法是什么? 非常感谢。bundle exec sidekiq

Ruby Redis Sidekiq

评论

0赞 spickermann 11/16/2023
我建议您将调试信息记录到您的方法中。在目前的形式下,没有人能够帮助您解决您的问题,只是我们没有足够的信息。问题可能是任何事情:作业未运行、引发错误、读取或写入数据库时出现问题。首先,您需要能够理解问题到底是什么。perform
0赞 YasuoPlayer 11/16/2023
在哪里可以查看日志调试信息?我不认为问题出在数据库连接和读/写操作上,因为我在作业之外测试了代码并且它运行良好
0赞 YasuoPlayer 11/16/2023
相反,我认为原因是我传递给作业的参数,我看到了一个奇怪的事情,当我从另一个脚本传递此参数时,作业将正确的参数放入控制台中,但是当我从当前脚本传递时,我遇到了这个问题
1赞 spickermann 11/17/2023
你看到一个奇怪的东西吗?你介意详细说明一下吗?如果您不向我们提供重现问题所需的所有详细信息,我们将无法为您提供帮助。我们不知道你是如何创建作业的,你传递了什么参数,我们如何运行作业,作业做了什么,我们还没有看到“奇怪的东西”。
1赞 Stefan 11/17/2023
您也可以尝试直接从 Ruby 运行作业以进行调试,即 .JobName.perform_inline(…)

答: 暂无答案