问题标签 [rufus-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 投票
1 回答
567 浏览

ruby-on-rails - 我应该将后台进程放在哪里?

我正在构建一个 Rails 项目,该项目具有我正在使用 Rufus Scheduler 管理的 cron 类型的作业。关于如何在 Rails 中进行适当设置,我有两个问题:

  1. 放置工作代码的最佳位置在哪里?
  2. 我应该在哪里放置 Rufus 代码来安排工作?我该如何启动它?
0 投票
3 回答
1321 浏览

ruby-on-rails - Rails 应用程序中的简单任务调度

无论如何在rails应用程序中设置简单的任务调度?有些代码我想每小时、每天或每周运行一次。我不想将它们分解成单独的脚本,然后我必须通过 cron 作业来安排这些脚本。如果我这样做了,那么我必须记得备份脚本,如果我重建服务器,我必须去添加所有的 cron 作业,这对于我需要的东西来说似乎有点混乱。

我希望我可以在我的 rails 应用程序中的某个地方安排一个作业,并在我想要它们时让它们神奇地运行!有任何想法吗?

0 投票
1 回答
1634 浏览

ruby-on-rails - Rufus调度程序未登录生产

我的 rails 应用程序在初始化程序中使用 rufus-scheduler 启动了一个进程。这是初始化程序代码的精简版本:

在所有环境中,代码都像冠军一样运行。填充过程完成它的工作并优雅地完成。然而,问题在于日志记录。当 RAILS_ENV 设置为“生产”时,cron 块内的消息根本不会记录。

我正在使用乘客 2.2.9 和 Rails 2.3.5。我认为这两件事之一是阻止进程记录。谁能告诉我它是什么以及如何让它登录生产?

0 投票
1 回答
914 浏览

ruby-on-rails - Rails 在生产中不断重启

我正在运行一个在初始化程序中启动 Rufus 调度程序进程的应用程序。该应用程序在生产中与Passenger一起运行,我注意到一些奇怪的行为:

首先,为了重新启动服务器并确保初始化程序运行,您必须同时touch tmp/restart.txt在浏览器中加载应用程序。此时,初始化程序触发。可怕的是,如果你只进行触摸,Rufus 安排的进程会被重置并且不会重新安排,直到你在浏览器中加载应用程序。

就这点我能应付。但这导致了第二个问题:我会注意到计划的进程没有运行,所以我加载了一个页面,突然日志文件告诉我它正在运行初始化程序,就像我重新启动一样。因此,在某些时候,Passenger 会随机重启,就好像我触摸了 tmp/restart.txt 并清除了我的预定进程一样。

我对Passenger 和Rails 的集成非常缺乏了解,所以我不知道这种偶尔的重启是异常的还是整个架构的一部分。任何人都可以就这种情况提供任何智慧吗?

0 投票
3 回答
14954 浏览

ruby-on-rails - 如何使用 Ruby 检查正在运行的进程?

我使用调度程序(Rufus 调度程序)每分钟启动一个名为“ar_sendmail”(来自 ARmailer)的进程。

当已经有这样的进程正在运行时,不应启动该进程,以免耗尽内存。

如何检查此进程是否已在运行?下面是什么unless

0 投票
1 回答
840 浏览

ruby-on-rails - 使用每个延迟作业获取额外的 rufus-scheduler 线程 rake 作业:工作

我正在尝试使用 rufus-scheduler 每隔一分钟左右检查一次,看看是否有作业准备好放置在延迟作业队列中。

在 #{RAILS_ROOT}/config/initializers 中有一个初始化脚本,用于启动调度程序。不幸的是,rake jobs:work 也运行 rails 初始化过程,因此每个jobs:work 都会启动另一个。

我怎样才能防止这种情况?

在 XP pro sp3 上运行 ruby​​ 1.8.6.26、rails 2.3.5、dj 1.8.5、rufus-scheduler 2.0.6

0 投票
2 回答
749 浏览

ruby - Rufus::Scheduler join 最终无法在 ruby​​ 中退出

我使用 Rufus::Scheduler 来安排任务,代码如下:

运行代码后,有打印'xxxx',但是运行call方法后,join不能自行退出,一直挂断。

等待完成工作后有什么方法可以退出加入吗?感谢你。

0 投票
1 回答
2655 浏览

ruby-on-rails - Rails 从初始化文件调用依赖于 :environment 任务的 rake 任务

我正在使用 rufus 调度程序来替换部署系统中的 cron 作业,并在应用程序加载部署时启动这些作业。

现在我将这个 scheduler.rb 放在应用程序根目录的 config/initializers 目录中。

scheduler.rb 文件内容如下:

现在,当我启动应用程序服务器时,我收到如下错误消息:

其中“环境”是我正在调用的任务“tempfile:delete_all”的依赖任务。这个 :environment 任务在 railties/lib/tasks/misc.rake 中定义。

我不想通过硬编码路径来加载这个 misc.file。有没有更清洁的方法来解决这个问题?

谢谢。

0 投票
1 回答
477 浏览

ruby-on-rails - 如何使用 rufus-scheduler 从特定日期每两周运行一次任务

我试图从今天开始每两周运行一次任务,但在我的测试中,似乎当 rufus 调度程序启动时,它会尝试运行该任务,但它已经“错过”了很多次,直到它赶上。

例如,如果我尝试这样的事情

如果时间是 5:57 ...调度程序将尝试发送电子邮件两次以弥补它在 5:20 和 5:40 时“错过”的时间...有意义吗?有没有办法让它正常发送而不试图“赶上”?

0 投票
2 回答
3332 浏览

ruby - rufus-scheduler 和 cron 有什么区别?

https://github.com/jmettraux/rufus-scheduler指出:

rufus-scheduler 是一个用于调度代码(作业)的 Ruby gem。它理解在特定时间、特定时间、每 x 时间或简单地通过 CRON 语句运行作业。

rufus-scheduler 不能替代 cron/at,因为它在 Ruby 内部运行。

那么如果它在 ruby​​ 中运行呢?我不能在 ruby​​ 中使用系统命令访问 cron 吗?