gpt4 book ai didi

java - 从 JAVA(MYSQL Insert 语句)和 delayed_jobs ruby​​ gem 处理的队列中手动输入延迟作业表

转载 作者:行者123 更新时间:2023-11-29 03:00:46 25 4
gpt4 key购买 nike

在 Rails 中使用 ruby​​gem,我们使用语法在 delayed_jobs 表中输入

 Delayed::Job.enqueue(MyJob.new(parameters), 0, 2.minutes.from_now, :queue => "queue1")

如何使用直接 mysql 语句在 delayed_jobs 表中执行相同的插入操作。主要是handler列,我必须插入什么值以及如何构造数据?。

delayed jobs表结构是

CREATE TABLE  `schema1`.`delayed_jobs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`priority` int(11) NOT NULL DEFAULT '0',
`attempts` int(11) NOT NULL DEFAULT '0',
`handler` text NOT NULL,
`last_error` text,
`run_at` datetime DEFAULT NULL,
`locked_at` datetime DEFAULT NULL,
`failed_at` datetime DEFAULT NULL,
`locked_by` varchar(255) DEFAULT NULL,
`queue` varchar(255) DEFAULT NULL,
`created_at` datetime DEFAULT NULL,
`updated_at` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `delayed_jobs_priority` (`priority`,`run_at`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;

类定义如下

class MyJob < Struct.new(parameters)
def perform

end
end

最佳答案

我有类似的情况,我通过在 delayed_jobs 的 run_at 列中插入 UTC_TIMESTAMP 使其工作。所以我的 sql 看起来像这样:

INSERT INTO delayed_jobs (handler, run_at, created_at, updated_at) VALUES ('--- !ruby/object:Delayed::PerformableMailer
object: !ruby/class \'MyMailer\'
method_name: :welcome_mail
args:
- 123', UTC_TIMESTAMP(), UTC_TIMESTAMP(), UTC_TIMESTAMP());

工作人员将检测到此记录并运行我的方法。

关于java - 从 JAVA(MYSQL Insert 语句)和 delayed_jobs ruby​​ gem 处理的队列中手动输入延迟作业表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35130007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com