Wspólny wzór na współpracę z ActionJob
w Rails jest utworzenie zadania z perform()
metody, która jest wywoływana asynchronicznie poprzez perform_now
lub perform_later
Różnica między Akcja Job/Mailer na `deliver_now` i` deliver_later`
w specjalnym W przypadku Mailers można bezpośrednio zadzwonić pod numer deliver_now
lub deliver_later
, ponieważ ActionJob
jest dobrze zintegrowany z ActionMailer
.
rails documentation ma następujące uwagi -
# If you want to send the email now use #deliver_now
UserMailer.welcome(@user).deliver_now
# If you want to send the email through Active Job use #deliver_later
UserMailer.welcome(@user).deliver_later
Brzmienie sprawia, że wydaje się deliver_now
będzie nie użycie ActiveJob
wysłać pocztę. Czy to prawda, a jeśli tak, jaka jest prawdziwa różnica między deliver_now
i deliver_later
? Czy ktoś nie jest asynchroniczny?
Czy ta sama różnica dotyczy również perform_now
i perform_later
?
Dzięki!
co, jeśli połączenie przeglądarki jest zamknięte?Nadal będzie działać deliver_later? – gates
@ gates 'dostawa_later' jest zarządzany po stronie serwera, więc nie ma znaczenia, czy połączenie przeglądarki jest zamknięte. Gdy zadanie zostanie przekazane do kolejki, zostanie wysłane (chyba że zabijesz proces pracy). –
Dzięki Daniel .. – gates