问题标签 [resque-scheduler]

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 投票
0 回答
106 浏览

ruby-on-rails - Resque Scheduler 未按预期更新模型

我正在使用 resque-scheduler 将帖子安排到 Twitter API。在我的数据库中,我有一个SocialMediaPost带有查询 API 的方法的模型,post_tweet然后使用推文的 id 更新记录。当我在 resque-scheduler 之外运行此代码时,它按预期工作。但是,当我排队发帖时,我的if/else块中的所有内容似乎都被跳过了。如果我转到我的 Twitter 帐户,我可以看到发布成功,但是当我检查数据库条目时,没有twitter_id, twitter_uid, 或twitter_link条目。

这是我的SocialMediaPost模型:

这是我的resque工人Postman

我尝试binding.pry在几个位置插入 a ,但 resque 跳过了绑定。请注意,我使用该update_columns方法来规避创建无限循环的错误。

0 投票
2 回答
5395 浏览

ruby-on-rails - 在 Rails 服务器日志中查看 Resque 日志输出

我在 Puma 服务器上有一个 Rails 4 应用程序,Resque/Resque-Scheduler 运行后台作业。我想知道的是如何将我的两个 Resque 工作人员的日志输出合并到我的服务器日志中,或者,这是不可能的,我如何查看我的 Resque 工作人员的日志输出。目前我还无法弄清楚如何查看工作人员的日志输出,所以我不知道引擎盖下发生了什么。我找到了这个 blogpostresque.rake ,它建议在我的文件中添加以下喜欢:

那没有用。我还尝试了评论中的建议,即替换Resque.logger = ActiveSupport::BufferedLogger.new(logfile)Resque.logger = ActiveSupport::Logger.new(logfile),但这也不起作用。使用第二个选项,NoMethodError: undefined method 'logger=' for Resque:Module当我尝试启动工作人员时仍然会出现错误。

这是我当前的resque.rake文件:

我查看了有关 logging 的 Resque 文档,但我不确定如何使用那里的内容,因为我承认对 Rails 的登录不太了解。我没有任何运气找到有关该主题的其他有用资源。

0 投票
0 回答
617 浏览

ruby-on-rails - Resque Scheduler 无法删除延迟的作业

我让 Resque Scheduler 与 Rails 4 应用程序一起运行,但我发现无法取消排队的作业。我的控制器中有以下方法:

然后在我的SocialMediaPost模型中,我有以下方法:

这是我的Postman工人:

当我调用Employers::SocialMediaPostsController#cancel它成功调用cancel我的帖子上的方法然后销毁它时,但是如果我检查Delayed调度程序中的选项卡,我仍然看到我的帖子排队。

如果我打开一个控制台会话并调用以下代码手动删除帖子,它就可以工作。

我在这里想念什么?它在控制台会话中有效,但在我调用 API 端点时无效。

0 投票
1 回答
402 浏览

ruby-on-rails - 如何在 Heroku 上暂停 Resque 处理?

我正在从 Delayed_jobs 迁移到 Resque,并且考虑到我将有很多工作总是在排队(将来有一些),所以不可能知道我什么时候可以将工作人员缩减到 0 以进行安全的新版本。

有什么方法可以安全地告诉 Heroku 上的工作人员完成当前工作的处理但不接受任何新工作?

这样,当工作没有处理任何事情时,我可以将工作人员缩减到零,以便在 Heroku 上安全地发布新版本。

然后我可以扩大工人数量并恢复处理。

0 投票
1 回答
204 浏览

ruby-on-rails - resque调度程序无法识别的信号SIGUSR1

我完全不知道如何运行我的 resque 调度程序。当我将单个任务排入队列并手动运行它时,它工作正常,但是当我尝试使用命令 rake resque:scheduler --trace 实现 resque 调度程序时,我得到 ArgumentError:不支持的信号 SIGUSR1。以下是 resque 调度程序所需的文件:

配置/初始化程序/resque.rb

配置/resque.yml

lib/tasks/resque.rake

配置/resque_schedule.yml

这是 rake resque:scheduler 命令的错误消息: 错误消息

0 投票
1 回答
1865 浏览

ruby-on-rails - Rails 如何在 Rails 控制台中测试 Resque

我在本地机器上运行resqueresque-scheduler 。

我可以通过在rails 控制台中复制并粘贴以下代码来测试我的工作是否正常吗?

这是我的SnippetHighlighter.rb代码

有人有同样的经历吗?谢谢

0 投票
1 回答
693 浏览

ruby-on-rails - Rails resque调度程序在特定时间运行作业

我有这个必须在上午6 点或上午 11 点或下午 16 点或晚上 20 点运行的任务

或至少例如早上 6 点

我如何定义这样的特定时间?谢谢

0 投票
0 回答
957 浏览

ruby-on-rails - Resque 调度程序并不总是在 Rails 生产中运行

抱歉,如果我的问题已经存在并在这里解决,但没有任何帮助。我有轨道应用程序。我的 Resque 运行良好。现在我想让救援调度程序处理我延迟的任务。例如,我想延迟 30 秒发送电子邮件。我的宝石文件:

resque.rb:

resque.rake:

部署.rb:

所以当我运行时:Resque.enqueue(TestJob, 'now job')它运行良好^但是当我运行时:Resque.enqueue_in(15.seconds, TestJob, '15 sec delayed job')直到下一次部署什么都没有发生:

那么如何设置我的救援调度程序来运行我的延迟任务呢?

ps当我运行时:

通过控制台在我的生产服务器上,我的救援调度程序运行良好,它可以按照我的意愿处理所有新的延迟任务

0 投票
1 回答
344 浏览

ruby-on-rails - 使用 Resque 和 Resque-scheduler 在后台处理作业

我正在使用 Ruby on Rails 作为后端构建一个 iOS 应用程序。我在尝试使用 Resque 和 Resque-scheduler 在未来运行延迟作业时需要帮助(使用“交付”队列)。

BACKGROUND=yes基本上,当我在前台运行 Resque 和 Resque-scheduler 时,我的工作正常工作,但是当我在后台运行它们时(使用),这些工作不会在 Resque 中处理。

如果您看到下面的屏幕截图,您可以看到 Resque-scheduler 正在处理“延迟项目”,但 Resque 实际上并没有处理它。我已经VERBOSE=1为 Resque 设置了,这样我就可以看到日志了。

在此处输入图像描述

知道我做错了什么吗?会不会是我的配置设置不正确?这是我的配置

在此处输入图像描述

非常感谢!如有必要,请随时询问更多信息。

0 投票
2 回答
126 浏览

ruby-on-rails - 有没有办法确定 ActiveJob 是在 Resque 工作人员上还是在应用程序内执行?

我的 Rails 应用程序中有一个从 ActiveJob::Base 扩展的作业,它有两种调用方式:

  1. ResqueScheduler 每天,由 Resque 工作人员拾取并处理
  2. 在应用程序内通过#perform_now 调用,因此它由应用程序处理。

有没有办法让我在工作中确定它是否正在由 Resque 工作人员处理?