问题标签 [clockwork]

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 回答
22 浏览

ruby-on-rails - I18n 与发条一起

当从时钟系统调用模型方法“model_method”时,I18n.locale 始终等于我的默认语言环境。

如何将当前语言环境传递给模型方法?

部分clockwork.rb

部分book.rb

0 投票
0 回答
1381 浏览

php - 如何在 Laravel 中找到瓶颈?

我有一个使用 Laravel 5.2 编写的大型应用程序。该应用程序似乎在“一两天”内运行良好,然后开始减慢“每个请求表超过 15 秒”。

我试图找出可能导致速度下降的原因。首先,我列出了我应该按顺序查看的“以下”前 4 个类别。

  1. SQL Server 问题。锁,长时间运行的查询。
  2. PHP 问题可能导致额外/不需要的工作,如长时间运行的循环
  3. Web 服务器问题,如内存泄漏或响应时间慢。
  4. 网络问题。

对于第一类“即 SQL 问题”,我评估了所有查询,一切似乎都很轻巧且相当快。没有长时间运行的查询,也没有发现 SQL 锁。虽然我没有将其排除为可能的问题,但现在看其他地方是公平的。需要注意的一点是,该应用程序正在生成大量查询,这表明我可能遇到了 N+1 的情况。

虽然第 3 类和第 4 类很重要,但我喜欢将一些时间集中在我需要帮助的第二类“即代码问题”上。如果存在代码问题,我需要能够弄清楚一些事情来帮助我做出有根据的判断。这是我想知道/开始记录的几件事。

  1. 每个类需要多长时间才能执行,看看是否需要更长的时间来运行。
  2. 从每个类生成的所有查询的数量/列表,我可以在其中识别 N+1 案例的来源。

我在 Google Chrome 中使用 Clockwork 扩展程序,它帮助我记录日志。但是,我无法在课堂级别分解结果,这将使我对正在发生的事情有深刻的了解。

如何收集上面列出的 2 个项目?是否可以连接到 Clockwork 并将该信息作为过滤器添加到其中我只是在 Google 扩展中看到所有这些信息的地方?

0 投票
1 回答
724 浏览

ruby-on-rails - 如何手动运行 Clockwork 作业?

标题真的说明了一切。

是否可以手动运行 Clockwork 作业?例如,如果我有一个clock.rb文件

我希望能够调用类似Clockwork.run('api.sync_shifts').

我查看了发条源,没有看到任何有用的东西。显然,在此示例中,我可以Shift.sync手动运行该方法,但是我会丢失用于监视工作状态的 after_run/before_run 回调。

0 投票
1 回答
643 浏览

ruby-on-rails - 使用 Clockwork/Delayed_Job/ActiveJob 安排每 5 分钟运行一次(轮次)

我正在读取一些传感器值,并且我想安排重复作业,以便每隔 :00、:10、:15、:20、:25、:30、:35 等重复一次。

我在 Rails 5 中使用 clockwork/delayed_job/activeJob 和工头,我能够检索值并将其存储到数据库中。

我无法做的是按时完成每个任务/作业,这意味着它们似乎排成一列,然后立即执行。我可以看到它们可能一次运行 5 次,而整个任务可能需要一些毫秒。

时钟.rb

sensor_job.rb

我错过了什么?

0 投票
1 回答
825 浏览

ruby-on-rails - 使用 Clockwork 每 10 分钟运行一次作业

我希望在 Clockwork 中每 10 分钟运行一次作业,但我希望它每小时运行 6 次,分别在 00、10、20、30、40 和 50 分钟过去。

Clockwork 自述文件中,它说您可以将通配符用于小时和分钟值:

支持小时和分钟的通配符:

但是,当我尝试时at: '**:*0',它给了我一个错误。

0 投票
1 回答
522 浏览

ruby-on-rails - Heroku 上 100% 可靠的时钟处理?

我正在使用Rails 5一个Heroku非常精简的支付处理应用程序,它将进行大量处理。

该应用程序没有太多功能,这就是它被托管在那里的原因。然而,它需要 100% 可靠地完成的一件事是运行支付处理作业,并且只运行一次。如果不是 100%(因为没有什么是完美的),那就是 99.9999%。

我选择Delayed JobSidekiq这个额外的数据库完整性。我也打算使用Clockwork宝石。

在阅读问题之后,似乎在 dynos 重新启动时,时钟进程运行了很多次。

我想知道用Rails/解决这个问题的最佳方法是什么Heroku。尽管重新启动和其他任何事情,我如何才能非常非常可靠地只运行一次某些作业?


另外,我忘了提到某些作业可以多次重新运行。这些作业很可能是每天或随时运行的作业。我真的不关心他们。

然而,我也在谈论 Rails 操作中的作业计划(这些将是关键操作)。如果在操作中重新启动,测功机重新启动是否可能web会阻止延迟作业从我的代码中安排作业?

0 投票
1 回答
787 浏览

ruby-on-rails - 如何在月初触发发条任务?

我想在每个月初运行任务。例如:

如何使用发条来做到这一点?

0 投票
1 回答
1099 浏览

ruby-on-rails - Rails find_each 不工作

目前,我正在通过我的 Rails 应用程序中的发条触发 SuckerPunch 作业。

但是,在搜索用户时执行会卡住。将Enumerator( User.find_each.inspect) 打印到控制台时,它会显示用户。为什么块不会运行?可能缺少 Rails 上下文吗?

这让我发疯了好几个小时。顺便说一句,我正在部署到 Heroku。

编辑:我想通了,有一个错误:Primary key not included in the custom select clause.

提前致谢!

0 投票
2 回答
875 浏览

ruby-on-rails - 如果我安排一个工作人员每天在 Heroku 上运行,我如何确保它不会运行两次或被跳过?

鉴于 Heroku 每天至少重新启动一次 dynos,我对 Clockwork、Sidekiq 和 Redis 如何在 Heroku 上组合在一起感到有些困惑。

假设我有一个每天运行一次的工人,所以它的配置config/clock.rb如下:

在这个工作人员中,我获取了所有创建帐户但在两天内未确认的用户,并向他们每个人重新发送一封确认电子邮件。

假设有人在星期一注册,这项工作在星期三运行,找到他们,然后向他们发送第二封确认电子邮件。然后无论出于何种原因,测功机都会重新启动,并且作业再次运行。他们将收到另一封电子邮件。或者,如果重新启动发生在作业需要运行之前的那一刻,那么他们将一无所获。

考虑到它在 Heroku 测功机中的“寿命”,Clockwork 如何对超过 24 小时的工作有任何概念?有没有办法简单地管理这个限制,而不必不断地将这种东西保存到数据库中?

0 投票
4 回答
3831 浏览

ruby-on-rails - 如何确保同一作业不会同时运行两次?

我有一个简单的 sidekiq 工作,我设置为使用发条每 5 分钟运行一次。我担心的是,如果作业时间超过 5 分钟,它会再次运行,如果它与原始作业同时运行,可能会导致一些问题。

有没有办法锁定发条,使其仅在前一次运行完成时才运行?