gpt4 book ai didi

ruby - 如何调用 delayed_job_active_record(rake 作业 :work) externally production env

转载 作者:太空宇宙 更新时间:2023-11-03 17:08:01 28 4
gpt4 key购买 nike

我有一个延迟作业,每当用户发布歌曲时都会调用该作业,该作业会向用户的 Facebook 墙发送事件帖子。这是作业的代码并在 Controller 中调用它。

我正在使用 'delayed_job_active_record' gem,如 Ryan Bates Facebook Open Graph Railscast 中所示

用户.rb

def self.post_song(user_id, song_url)
user = User.find(user_id)
user.facebook.put_connections("me", "virtual_piano:post", song: song_url)
end

posts_controller.rb

(upon successful save)
User.delay.post_song(current_user.id, post_url(@post))

此作业在开发模式下使用标准 rake jobs:work 运行。

我看到一些人使用 RAILS_ENV=production script/delayed_job start 延迟作业我如何在生产中调用此方法并使其在后台运行?

非常感谢!

最佳答案

delayed_job 中的

rake jobs:work 类似于 rails 的 rails s 命令 - 它在执行命令的控制台(shell)的主进程中运行。这意味着当包含它的控制台(shell)停止运行(即您注销)时它停止运行。

您需要改为运行 RAILS_ENV=production script/delayed_job start - 它像 rails s -n 那样将 delayed_job 队列作为守护进程(后台进程)启动用于导轨。

关于ruby - 如何调用 delayed_job_active_record(rake 作业 :work) externally production env,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12824037/

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