После того, как вы настроили delayed_job, вы можете установить метод для выполнения в фоновом режиме, пока вы занимаетесь своими делами.В этом случае метод развертывания всегда будет в фоновом режиме, установленном handle_asynchronously
.
class UploadStatus < ActiveRecord::Base
def deploy
# write your ftp loop here
# periodically update this model in the db with the status
end
handle_asynchronously :deploy
end
Теперь вы можете просто вызвать @upload_status.deploy()
, и он будет работать в фоновом режиме.
Вы также можете написать метод задания, но я думаю, что он имеет больше смысла в классе ActiveRecord, поскольку вы будете обновлять состояние развертывания.