Delayed :: Job on Heroku'da çalışırken bir sorun yaşıyorum. Gecikmeli yürütme için sıraya alınan işlerinin çoğu, iki kez (yalnızca bir kez) çalıştı. Bu yüzden SendGrid e-postalarımın çoğu çoğaltılarak gönderiliyor ve ActiveMerchant işlemlerimin çoğu kendilerini iki kez ödüllendirmeye çalışıyor!Gecikmeli :: İşler Heroku'da İkili Kaçıyor?
Heroku örneğimizde 2 çalışanımız var. Tesadüf? Sanırım ikiye ihtiyacımız var çünkü yedekler ve şeyler için de bir cronumuz var.
İki kez meydana gelen işler birbirinin üstünde meydana gelir (ölçülemeyen derecede yakın). Bu bir yarış durumu, ama neden oldu?
$ heroku stack
aspen-mri-1.8.6
bamboo-mri-1.9.2
* bamboo-ree-1.8.7
cedar (beta)
Biz 10 web dinamometre çalıştırın ve bir Ronin veritabanı:
özellikleri şunlardır. Eklenti-bilge Elimizdeki: Gemfile yılında
Basic Release Management FREE
Cron Daily Cron FREE
Custom Domains FREE
Expanded Logging FREE
Hostname SSL 20.00 PER MONTH
PG Backups Basic FREE
Sendgrid Pro 20.00 PER MONTH
Shared Database 5MB FREE
:
gem 'rails', '3.0.6'
gem 'delayed_job', :git => 'git://github.com/collectiveidea/delayed_job.git', :tag => 'v2.1.2' # 3.x doesn't seem to work with Heroku
Benim işleyicileri
benziyor:class OrderEmailJob < Struct.new(:order_id, :email_type)
def perform
OrderMailer.send(email_type, Order.find(order_id)).deliver
end
end
ve benzeri sıraya alınmış:
Delayed::Job.enqueue OrderEmailJob.new(self.id, :order_confirmation)
Ben çok çalıştım DJ'in farklı versiyonları ama bu sadece biriydi Heroku'da olduğu gibi çalışabilirim.
Gerçekten herhangi bir öneriniz için teşekkür ederiz. Bu sitemiz için çok kötü.
İşinizi ve kod kodunu göndermelisiniz. – s84
, böylece maillerinizde bir '' gönderim 'tanımınız var mı? – s84
@Codeglot Hayır, ruby gönderme yöntemi budur http://ruby-doc.org/core/classes/Object.html#M000999. – user874500