Delayed_Job - на сервере site5 - PullRequest
1 голос
/ 04 апреля 2010

Я сейчас использую сервер site5 и хотел бы rake jobs:work в основном работает все время. В настоящее время я не могу отправить работу, если я не зашел на сервер. Я надеюсь, что кто-то там может помочь мне с этим. У меня было много проблем с ar_mailer и whenever драгоценным камнем ... но в моем приложении rails отлично работало еще 5 драгоценных камней.

Может кто-нибудь пролить свет на решение для этого, пожалуйста? с благодарностью (установлен delayed_job в качестве плагина)

Ответы [ 3 ]

1 голос
/ 05 апреля 2010

ОК, у меня есть обходной путь, это лучшее, что я могу сделать, но это работает в некоторой степени ... Я использовал задания CRON и пользовательский скрипт / файл jobrunner .

Я создал сценарий jobrunner , расположенный по адресу script/jobrunner, который содержит следующие

#!/usr/bin/env ruby
require File.dirname(__FILE__) + '/../config/environment'
Delayed::Worker.new.start

Затем в задании cron я запустил этот файл.

В отчете cron я все еще получаю несколько ошибок, но задания выполняются, и я доволен этим!

Например, задание cron выполняется каждый час на 50-й минуте, и оно проходит через все delayed_jobs в таблице и обрабатывает их. Это следующее лучшее решение, которое я нашел для моей проблемы. надеюсь, это поможет кому-то в будущем.

Посмотрим, какие еще сценарии можно придумать для ежедневных / еженедельных заданий.

1 голос
/ 08 апреля 2010

Задержанное задание поставляется со скриптом для запуска в фоновом режиме и регистрации в log / delayed_job.log. Вы можете запустить daemonized delayed_job в режиме разработки, например так:

RAILS_ENV=development script/delayed_job start
1 голос
/ 04 апреля 2010

Если вы используете capistrano, запустите delayed_job, когда ваше приложение будет развернуто. Добавьте это в файл с рецептом развертывания.

require 'delayed/recipes'
after "deploy:stop",        "delayed_job:stop"
after "deploy:start",       "delayed_job:start"
after "deploy:update_code", "delayed_job:stop"
after "deploy:restart",     "delayed_job:start"
...