问题标签 [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 回答
544 浏览

ruby-on-rails - 用于调度 cron 任务的 Resque 调度程序

我是使用 resque 调度程序的新手。我使用 rails 3 开发了一个社交网络应用程序,我想在一段时间内监控每个帖子的受欢迎程度并将其存储在我的 postgres 数据库中。我有一个计算受欢迎程度的 resque worker,但我不知道如何安排它。我的要求是:

  • 从帖子创建之日起的前 3 天,我需要每 2 小时计算一次人气。
  • 3 天后,我需要在 3 天内计算一次(为期一个月,即 30/3 = 总共 10 次)
  • 一个月后,我需要每周计算一次(跨度为 2 个月)
  • 2个月后,每月一次,持续3个月。

我认为这个时间表是静态的,不需要动态时间表。那么,有人可以帮我解决我应该在 resque_scheduler.yml 中添加的内容吗? 我真的需要帮助来解决这个问题。提前谢谢!!!

0 投票
1 回答
576 浏览

ruby - resque-scheduler 在作业删除时失败

我使用了 Github 中的 POC(队列丢失,我添加了它:

我收到以下错误:

0 投票
1 回答
87 浏览

ruby-on-rails - 动态调度在 Rails 中不起作用

动态调度在 Rails 中不起作用,每次都需要执行
rake resque:scheduler
rake resque:work

我的工作环境
rails 3.2.13
resque-1.25.2
resque-scheduler-3.0.0
ruby 2.0.0p247

这个问题有什么解决办法吗?

0 投票
2 回答
1659 浏览

ruby-on-rails - 在 resque-web 中显示 resque-scheduler 选项卡

我按照resque-scheduler repo 上的所有说明在 resque -web 界面上显示“延迟”和“计划”选项卡,但什么也没有!

这是进口的宝石:

为了通常将调度程序添加到 resque-web,我编辑了./config/initializers/resque_config.rb

为了加载 resque-web,我使用了 rails 路由:

但是,仍然对 resque Web 界面没有影响......

0 投票
3 回答
3556 浏览

ruby-on-rails - Resque-Scheduler 不能在 Rails 4.2 中使用 ActiveJob

有没有人能够在 Rails 4.2 中获得预定的工作?

我正在使用 resque,并且正在尝试使用 resque-scheduler 来安排作业。我有一个计划被加载并且计划程序运行,甚至看起来它正在运行作业,但它没有做任何事情。

我可以将这样的工作排入队列并得到处理。

我在工作日志中得到这个输出

但是当我尝试安排一份工作时,看起来他们正在排队,但他们没有做任何事情。

这是 schedule.yml

这是计划作业的输出。

阅读此http://dev.mikamai.com/post/96343027199/rails-4-2-new-gems-active-job-and-global-id后 ,我怀​​疑它与 ActiveJob 和 GlobalId 有关。

看看排队的区别

与预定

工作本身是通过

它们看起来像这样:

对此的任何帮助将不胜感激,并提前致谢。

********* 更新 *********

我已经删除了 action_job railtie,我只使用 Resque 和 Resque-Scheduler,并且计划的作业现在正在工作。所以这似乎与 ActionJob/GlobalId 有关。我在 rails 项目中打开了一个问题。希望他们能尽快修复它。

****** 第二次更新 ********* 我得到了这方面的更新。在 ActiveJob 代码库工作的 Cristianbica 这么说。“到目前为止,我们还没有考虑过重复工作,我们不支持这个,因为没有外部 gem 的适配器都不支持这个。然而,这是一个非常好的功能,但我认为我们无法及时实现4.2. 另外我不确定它是否适合包含在 rails 中”

0 投票
1 回答
71 浏览

ruby-on-rails-4 - 配置 Resche 计划以延迟在特定时间发送邮件

很抱歉,如果这是重复的,我尝试搜索这个,但不确定要使用什么搜索词并且没有真正找到任何东西

我目前正在研究如何在服务器启动我的应用程序时设置待办事项的时间表。我想做的功能就像每周/每月向所有用户发送邮件。问题是,如果需要发送的邮件数量巨大,几个小时就无法发送出去(我不喜欢在深夜给用户发邮件);它将在第二天早上暂停并继续这项工作....

就我搜索而言,我发现了两个宝石:resque-scheduler 和 rufus-scheduler。我真的不知道我应该专注于挖掘哪一个。

谁能指出我去哪个大方向?其中哪一个具有内置功能可以完成这样的任务?还是我需要自己制定时间表?...

0 投票
2 回答
469 浏览

php - php-resque-scheduler 和 resque-web 接口 URI::InvalidURIError at /delayed

我正在使用 Chris Boulton 的 resque (php-resque) 和 resque-scheduler ( php-resque-scheduler ) 的 php 端口,我还使用标准 resque-web 界面来查看作业/队列等。

在我最近安装 resque-scheduler 并按照此处的说明为 resque-web 设置配置之前,我对 resque-web 没有任何问题。

使用 php-resque-scheduler 我没有任何问题(似乎)安排我的队列延迟,但是当我登录 resque-web 并单击“延迟”选项卡时,我收到以下错误:

URI::InvalidURIError at /delayed bad URI(不是 URI?):/delayed/jobs/Namespace\Of\Job\Class?args=[%7B%22

只有将作业设置为延迟时,我才会收到此错误。

我的感觉是 PHP 类的命名空间正在破坏 resque-web 路由。我有点难过,因为我对 Ruby 不太熟悉,也不热衷于编辑包文件等。

如果有帮助,我正在 Ubuntu Trusty 14.04 上运行 ruby​​ 1.9.1。做resque-web -v给我:

机架 1.2

西纳特拉 1.4.5

拉斯维加斯 0.1.11

对此的任何帮助将不胜感激!

更新:我尝试为该作业的类起别名并通过别名类传递,这不会破坏接口,所以我认为我最初的假设是正确的。这不是一个真正的解决方案,但可行。

0 投票
1 回答
145 浏览

resque - 使用 resque-schedular 动态设置每月定期工作

用这个把我的头撞到墙上。尝试使用 resque-scheduler 动态添加作业。创建月度作业的语法是什么?例如,下面的代码将设置一个作业每分钟运行一次。

每个月的语法是什么?会是 config[:every] = "1 month" 吗?我似乎无法在 resque-scheduler 文档上找到任何答案。

谢谢。

0 投票
0 回答
217 浏览

ruby-on-rails - 如何防止额外/任意?resque worker 被创建 - 它导致 resque-scheduler 作业无法在这些已失效的 worker 上运行

我有一个问题我已经研究了一段时间但无法弄清楚......感谢任何帮助,

我们在 Heroku 上运行 redis、resque 和 resque-scheduler。许多计划的作业没有运行。/resque/failed 网页显示错误,表明 rails 从未在工作进程中加载​​。许多错误没有进入 /resque/failed 页面列表。但是,作业要运行很多次。

我还在 /resque/workers 中看到了比在 Heroku 中运行的更多的工人。我无法解释这一点。我从 rails 控制台杀死了工作人员,重新启动 Heroku 工作人员,一切看起来都不错,但最终更多的工作人员出现在 /resque/workers 页面中。注意:这些工人不会因为 Heroku 重新启动(每 24 小时执行一次)而出现。在我看到第三个工人的出现(我在 Heroku 中运行 2 个)后,我做了一个“heroku ps”,显示 2 个 Heroku 作品的正常运行时间约为。7小时。

我怀疑 resque-scheduler 用来与等待和就绪的工作进程通信的机制在某种程度上被破坏了。并且额外的worker是resque机制仍然“看到”的已失效的rails进程(即,这些失效的worker在Redis中有条目)。

更多细节:-我注意到 /resque/workers 网页中显示了 6 个工作人员,因此我使用 Rails 控制台杀死了所有工作人员。然后我重新启动了 Heroku 中的工人。那什么也没做,所以我在 Heroku 中重新启动了 resque-scheduler 进程。仍然没有变化,但是 /resque/workers 页面显示了正确数量的 resque 工作人员(该数量与 heroku 工作进程的数量相匹配)。- 大约 12 小时后,我注意到 /resque/workers 页面中出现了更多的工人。怎么回事?- 有些工作确实得到了处理,我在每个工人的完成总数中看到了这些(即,所有工人都显示非零的 num_processed 值)。-我确实看到日志显示有时工人会跑。

这里有明显的问题吗?有人可以描述 Redis 中与 resque-scheduler 与 resque 工作人员通信相关的键/条目结构吗?我注意到 resque 不再与 ruby​​ 1.9.2 兼容,但我不认为这是可能的原因,因为问题是间歇性的。我意识到我们使用 resque 的 v. 1 而不是 v. 2。

我通读了这个看起来相似的问题:Resque on Heroku cedar stack Worker count still exists after the worker terminate but that it not my question (因为我没有将命令行上的 ENV 变量传递给 heroku workers/aka resque worker processes)。

虽然它可能与此有关:https ://github.com/resque/resque/issues/319#issuecomment-1789239我没有将任何 ENV 变量传递给我的工作人员的 rake 任务命令行。

错误和日志信息:

对于 resque-scheduler 安排/排队的每个作业,我确实看到了一个日志条目,显示它正在执行它并在正确的时间执行它,例如:

很多时候我从来没有看到工人跑。有时我会(再次,从日志中):

/resque/failed 中的示例错误:异常 NameError 错误未初始化常量 WorkerProcess => 指示 Rails 从未在 resque 工作进程中加载​​(或不再加载)。

环境和版本:

宝石:redis-3.0.6 resque-1.25.1 resque-scheduler-2.3.1

Procfile(由 Heroku 使用): web: bin/start-nginx bundle exec unicorn --env $RACK_ENV -c ./config/unicorn.rb worker: bundle exec rake jobs:work scheduler: bundle exec rake resque:scheduler

为工人耙任务:

resque.rake:

任务“工作:工作”=>“resque:工作”

——迈克·帕珀

0 投票
1 回答
236 浏览

mysql - ActiveRecord::StatementInvalid 错误仅在通过 resque-scheduler 调用 SQL 查询时发生

为什么错误仅在通过 Resque 调度程序执行时发生?

我不知道为什么在通过 resque-scheduler 调用时只选择用户名。我希望选择 users 表的所有列。

resque-scheduler 调用的作业是这样的:

错误日志如下所示:

用户和设备模型之间的关系如下图所示:

通过 Rails 控制台调用成功完成。

通过 MySQL 控制台调用成功完成。

取决于版本;

  • 红宝石:2.1.2p95
  • MySQL:5.6.20
  • Ruby on Rails:4.1.4
  • mysql2:0.3.17