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

ruby-on-rails - Resque:我如何仅将特定工作人员用于一个特定队列

在我的 rails 5 应用程序中,我使用 resque 和 resque-scheduler 向我的客户发送消息。为此,我为消息创建了不同的不同队列,并创建了 3 个工作人员用于使用队列发送消息。所以,这里我的问题是我怎样才能为一个特定的队列使用一个特定的工作人员。 即我有四个队列,如生日检查器、提醒消息、约会检查器、确认消息。对于约会检查器,我设置了 cron 它将每 56 秒运行一次。为此,我的所有 3 名工作人员都忙于运行约会检查器队列。和其他正在等待的队列作业。但是我可以在这里为这个约会检查器队列保留一名工作人员。那么有可能吗?

我试着在堆栈上找到一些相关的问题,但我找不到具体的解决方案。

这是我的 resque.god 文件代码

而这个是 lib/tasks/resque_scheduler.rake 文件代码

我尽力在stackoverflow上提出我的第一个问题,所以请忽略小错误并为我提供上述问题的解决方案。谢谢!

0 投票
2 回答
2310 浏览

ruby-on-rails - 将 Resque-Scheduler 与 Docker-Compose 一起使用 - 在 localhost:6379 上连接到 Redis 时出错

我正在尝试运行我的 rails 应用程序 resque 和 redis。使用工头等我的设置工作正常,但是当我尝试使用 docker-compose 在 Docker 中运行它时,我得到:

我的 Dockerfile 看起来像:

我的 Docker Compose YML 看起来像:

我的过程文件:

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

和我的 lib/tasks/resque.rake

更新

问题似乎与 Resque-Scheduler 相关。如果我从我的 procfile 中删除它,我可以使用 Docker-Compose 启动我的应用程序,我可以看到执行 resque 作业并看到它们正在运行。

但是,调度程序在手动启动或使用工头(不使用容器)启动时工作正常,所以我希望它也能在这里工作。

0 投票
2 回答
856 浏览

ruby-on-rails - 在 Heroku 上使用 Resque 不能从事后台工作

我的 rails 应用程序有工作(使用Active Job)。我使用resqueresque-schedulergems 来排队后端。

我想在 Heroku 上使用 Resque 将我的 rails 应用程序连接到 redis-to-go 服务器,但我的日志中收到许多错误消息,如下所示:

一切都适用于开发和生产环境,但不适用于 Heroku。我发现了许多类似问题的问题,但他们的解决方案对我没有帮助。

我在方法中收到Error connecting to Redis on localhost:6379 (Errno::ECONNREFUSED)来自redis gem的错误消息establish_connection。但是当我从 Rails 控制台中找出必要的值时,我明白了。

此外,我知道在 Heroku 上重新启动我的应用程序后,resqueresque-schedulergems 的设置正常工作,但由于某种原因,Resque 连接到localhost:6379而不是 redis-to-go 服务器。你有什么想法,为什么会这样?我该如何解决这个问题?

我在下面提供了有关我的设置、使用 gem 等的必要信息。

==================================================== ========================

之后的控制台日志heroku restart

https://pastebin.com/E9YkxeEP(正文限制为 30000 个字符,抱歉)

宝石文件

Gemfile.lock

档案

lib/tasks/resque.rake

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

配置/环境/production.rb

应用程序/工作/destroy_private_job.rb

0 投票
1 回答
147 浏览

ruby-on-rails - 使用 Rails 实现计划任务执行的最佳实践?

在我的 Rails 应用程序中,用户可以取消他们的订阅,这应该会触发一个函数来降级他们的帐户current_billing_period_end(这个变量由支付提供商的 API 提供)。例如,用户在 4 月 12 日取消了订阅,但在 3 月 1 日之前订阅有效。因此premium,该用户在数据库中的条目应设置为false仅在 3 月 1 日。

我已经使用 Resque 和 Resque-Scheduler 实现了一个可行的解决方案,但现在想知道这是否有点矫枉过正?

我可以subscription_end_date在取消订阅时为用户设置一个数据库条目并将其设置为current_billing_period_end然后每当用户进行身份验证时我都会运行

但是,这意味着每次用户进行身份验证时都运行该代码段/前端检查用户是否通过我的 API 登录。

我的问题是:实现该功能的更好方法是什么?Resque 解决方案似乎更干净,但我想知道对于我在这里想要实现的目标是否太多/征税。我以前从未与 Resque 合作过,如果这是我不必在生产中维护的另一件事,我会很高兴。

0 投票
0 回答
8 浏览

ruby-on-rails - Resque 工作人员命令未显示任何信息

当我尝试获取工人状态时,它总是每次都返回 * 符号,例如 [#<Worker biola-pc:50865:*>]

可以吗,还是我的 resque 设置中一定缺少某些东西?

在此处输入图像描述

0 投票
0 回答
27 浏览

amazon-linux-2 - 无法在 AWS 平台中创建 resque 调度程序:Ruby 2.6 和 Amazon Linux 2

我正在将我们的 EB 应用程序从 Amazon Linux 1 迁移到 Amazon Linux 2 平台。

我使用 Amazon 平台:Ruby 2.6 和 Amazon Linux 2 创建了一个 Elastci Beanstalk,并选择 Amazon 示例应用程序作为第一个部署的应用程序。

修改我们的 EB 应用程序的 Gemfile 和部署脚本后,我将新应用程序部署到上述环境。

在 Gemfile 中,ruby、rails、puma 和 resque 更新如下:

在我的应用程序中,在部署期间执行以下命令以启动 3 个 resque 工作人员和一个调度程序。

分解后,正如我们所料,我可以看到创建了 3 个救援人员,但找不到调度程序。我也可以看到/opt/rubies/ruby-2.6.8/是在环境平台中。

我将结果与 Amazon Linux 1 进行了比较,工作程序和调度程序都是在 Amazon Linux 1 中创建的。

在 Ruby 2.6 和 Amazon Linux 2 中使用 resque:scheduler 时,您是否遇到过同样的问题?

0 投票
0 回答
16 浏览

ruby-on-rails - 限制 Resque 作业但不重新排队

我有一份工作,我想每周最多运行一次,每条记录。如果其他工作在一周内排队等待相同的记录,我希望这些工作被放弃,而不是推迟到下周。

起初我认为resque-restriction这是灵丹妙药,我可以添加restrict per_week_and_prompt_id: 1到我的工作中。但是自述文件指出:“它将在下一个时期执行超出的作业”,这不是我想要的功能。

我看到还有其他 Resque 插件可以防止多余的工作,比如resque-loner,但我不清楚它是否会与resque-restriction. 有没有办法配置这些工作以这种方式工作?