【问题标题】:How to enqueue a Job to ActiveJob without loading the whole rails environment?如何在不加载整个 Rails 环境的情况下将作业排入 ActiveJob?
【发布时间】:2015-08-30 15:17:22
【问题描述】:

我想从不同的地方将作业排入 ActiveJob。有时来自命令行,有时来自 cron 作业。但是每次都加载整个环境,只是为了在redis中创建一个入口,感觉效率不是很高。

是否有其他解决方案可以在不加载整个 Rails-Application 的情况下快速将作业添加到 ActiveJob。

我知道,这应该是春天的工作,但是(我不知道为什么)它仍然需要大约 5 秒:

> time rails runner -e production 'SynchronizeStuffJob.perform_later'
[ActiveJob] Enqueued SynchronizeStuffJob (Job ID: 148e34bd-c38c-45c9-86f5-5a959a548ebb) to Sidekiq(default)

real    0m5.122s
user    0m4.385s
sys     0m0.663s

哦,如果这很重要:我使用 sidekiq。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 cron sidekiq rails-activejob


    【解决方案1】:

    ActiveJob 需要 Rails;如果不启动 Rails,您将无法使用 ActiveJob。

    您可以在不启动 Rails 的情况下创建 Sidekiq 本机 Worker 作业。

    【讨论】:

    • 您实际上可以在 Rails 之外使用 ActiveJob。文档不是很好,但有可能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-06
    • 2018-04-05
    • 2023-04-03
    • 2012-01-24
    • 2013-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多