问题标签 [rails-activejob]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
463 浏览

ruby-on-rails - 如何在不加载整个 Rails 环境的情况下将作业排入 ActiveJob?

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

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

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

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

0 投票
1 回答
1074 浏览

sidekiq - 如何清除 ActiveJob 队列

我有工作反复尝试和失败......我如何清除它们?我现在将重试次数设置为 0,但这对已经排队的作业没有帮助。

0 投票
0 回答
1786 浏览

redis - 如何在 Rails 的 activejob (adapter=resque) 中执行操作时获取作业 ID

我可以从 before_enqueue 方法中获取 JOB ID,例如

但我也想在执行方法中得到它请帮助!

0 投票
3 回答
636 浏览

ruby-on-rails - ActiveJob:如何在没有完整的作业类的情况下进行简单的操作?

有了delayed_job,我可以做这样的简单操作:

@foo.delay.increment!(:myfield)

是否可以对 Rails 的新 ActiveJob 做同样的事情?(无需创建一大堆执行这些小操作的作业类)

0 投票
1 回答
2289 浏览

ruby-on-rails - 使用 ActiveJob 时是否仍只传递对象 ID?

在 ActiveJob 中执行以下操作有哪些优缺点:

选项 A:

选项 B:

0 投票
1 回答
422 浏览

ruby - 带 Resque 适配器的 ActiveJob(添加延迟/超时功能)

我计划使用循环传递多个活动作业。但是我需要在每个数据循环中都有一个延迟/超时功能。我的代码是这样的:

请帮忙谢谢!

0 投票
1 回答
2163 浏览

ruby-on-rails - 如何使用delayed_jobs在rails中执行异步任务?

任务:以方式删除一个项目Async[HomeWork]

我已经在我的 rails 应用程序中配置Active jobsdelayed_jobs,但我仍然对Async在 rails 项目中执行任务感到困惑。

让我们举个例子:我有一些项目要从数据库中删除,但我想以某种Async方式进行。我还在博客中阅读了有关perform_laterperform_now方法的信息。delayed_job这是我的代码,它工作正常:

控制器类

职位类别

根据delayed_jobs的官方文档,我可以handle_asynchronously在方法的末尾添加以运行async方式。在这种情况下我该如何实施?

我的问题:

  1. 当我查看destroy方法时,它不会以Async某种方式删除元素。destroy但是,方法中编写的每个步骤都在Synchronous. 我错了吗?
  2. 如果不是,那么我该如何实现以异步方式destroy删除的方法?post
  3. 后台任务和cron作业是一回事吗?

编辑-1

在 A Fader Darkly 给出建议后,我将其更改perform_nowperform_later对进程非常有效,Async但它没有从表中删除条目(代码很好,因为它在我用户时有效perform_now)。

此外,当我通过以下命令手动运行作业时,一切正常:

有什么方法可以在获得一些新数据delay_job后立即执行任务?queue

0 投票
1 回答
79 浏览

ruby-on-rails - 基于 GlobalID 的 ActiveRecord 对象的行为是否存在问题?

我完全有可能做错了什么,但是!

这是故事。我有一个标准的初学者级别的 RoR 设置 (4.2) 和 ActiveJob 作业。

我的一项工作调用了已传入的记录上的一个方法,该方法旨在修改该记录。到现在还挺正常的。它看起来像这样:

然后update_myself!方法如下所示:

现在这是个谜——当我运行测试并检查时,fixture_instance.thisis_a_column测试newvalue通过了。当我启动我的应用程序并查看数据库中发生的情况时,它没有按预期更新。

但如果我说self.thisis_a_column = newvalue,那么它在任何地方都能正常工作。

我确定我重新加载了我的夹具......我是这样做的:fixture_instance = RecordinDb.find(fixture_inst.id)

就好像 ActiveRecord 实例中的绑定会根据实例化的时间发生变化。在我的测试中,看起来符号被视为可能发送的消息,self但在工作中,它们被视为本地名称。为什么?

0 投票
2 回答
551 浏览

ruby-on-rails - Rails 4.2:重定向后的活动作业

这是我第一次使用ActiveJob,所以我还在纠结细节。我有一个表单,当通过Execute按钮保存时,它会执行一些需要很长时间的 API 调用。

我希望页面无需长时间等待即可重定向到索引。这是我的控制器的创建操作..

campaign_controller.rb

...而我的工作还处于婴儿期

folder_push_job.rb

完成这项工作的最佳方法是什么?

更新

我发现的一个问题是我没有 Job 的后端,所以我安装了delayed_jobgem。

配置/应用程序.rb

现在它重定向并且根本不运行作业。

非常感谢任何帮助。

0 投票
0 回答
1351 浏览

ruby-on-rails - 如何在生产中启动/停止 ActiveJob 工作人员

我在开发中使用 ActiveJob(延迟作业作为排队后端,但我认为这无关紧要)来执行诸如异步发送电子邮件或记录一些事件之类的事情。

在开发中,在终端中,我执行rake jobs:work启动工作进程,我CTRL+C用来杀死它,我rake jobs:clear用来清空队列。

我如何在生产中执行此操作(DigitalOcean 上的一个小滴),即使我没有在服务器上登录,我如何知道我的工作人员正在运行?我通常使用mina部署,我可以在我的脚本中编写它deploy.rb吗?