나는 일정한 간격 (예 : 매 60 초마다)으로 트위터에 게시하려는 일부 트윗/텍스트가 포함 된 데이터베이스를 가지고 있습니다. 트윗은 for 루프를 반복하고 매 시간마다 하나의 트윗을 게시해야합니다.loop in job schedueler 설정된 간격으로 실행되는 Resque
나는 하나의 짹짹에 대해 이것을 수행하고 60 초 동안 잔다하는 방법을 작성했습니다.
class TweetsController < ApplicationController
def create
Tweet.all.each do |t|
current_user.tweet(t.text)
sleep 60
end
end
end
기본적으로 내가 달성하려고 시도하지만 비동기식이어야하며 백그라운드에서 수행해야합니다. 나는 redis/resque 설치를 시도하고 성공했지만 작업을 구현하고 작동시키지 못했습니다. 나는 레일을 처음 사용하고 전에 배경 작업자/작업을 설정하지 않았습니다.
나는 resque에서 Sender.rb 작업은 내가 모든 작업이 자동으로 폴더 문서 및 자동로드에 따라 resque 구현 한
class Sender
def self.queue = :tweets_queue end
def self.perform user_id
Tweet.all.each do |t|
current_user.tweet(t.text)
end
end
end
을 구현했습니다.
하지만 현재 몇 가지 문제가 있습니다. 이와 같이 for 루프는 작업자를 시작할 때마다 실행됩니다 (나는 결코 실행하지 못한다). 작업이 시작될 때마다 데이터베이스 항목을 하나씩 반복하는 방법을 알아야합니다. 또한 작업을 실행하도록 예약하는 방법 (예 : 60 초마다 또는 24 시간마다 Sender.rb 작업 실행) 작은 막연한 게시물에 대해 유감스럽게 생각합니다.하지만 며칠 동안 내 머리를 감싸고 아무데도 못가려고 노력했습니다.