瀏覽代碼

[fix] email queue must be fifo with priority

version-14
Rushabh Mehta 9 年之前
父節點
當前提交
2bf6be0629
共有 2 個文件被更改,包括 9 次插入4 次删除
  1. +5
    -4
      frappe/email/queue.py
  2. +4
    -0
      frappe/utils/redis_wrapper.py

+ 5
- 4
frappe/email/queue.py 查看文件

@@ -254,9 +254,6 @@ def flush(from_test=False):
msgprint(_("Emails are muted"))
from_test = True

frappe.db.sql("""update `tabEmail Queue` set status='Expired'
where datediff(curdate(), creation) > 7 and status='Not Sent'""", auto_commit=auto_commit)

smtpserver = SMTPServer()

make_cache_queue()
@@ -281,9 +278,10 @@ def make_cache_queue():
order by priority desc, creation asc
limit 500''', { 'now': now_datetime() })

# reset value
cache.delete_value('cache_email_queue')
for e in emails:
cache.lpush('cache_email_queue', e[0])
cache.rpush('cache_email_queue', e[0])

def send_one(email, smtpserver=None, auto_commit=True, now=False):
'''Send Email Queue with given smtpserver'''
@@ -350,3 +348,6 @@ def clear_outbox():
"""Remove mails older than 31 days in Outbox. Called daily via scheduler."""
frappe.db.sql("""delete from `tabEmail Queue` where
datediff(now(), creation) > 31""")

frappe.db.sql("""update `tabEmail Queue` set status='Expired'
where datediff(curdate(), creation) > 7 and status='Not Sent'""")

+ 4
- 0
frappe/utils/redis_wrapper.py 查看文件

@@ -120,6 +120,9 @@ class RedisWrapper(redis.Redis):
def lpush(self, key, value):
super(redis.Redis, self).lpush(self.make_key(key), value)

def rpush(self, key, value):
super(redis.Redis, self).rpush(self.make_key(key), value)

def lpop(self, key):
return super(redis.Redis, self).lpop(self.make_key(key))

@@ -180,3 +183,4 @@ class RedisWrapper(redis.Redis):
except redis.exceptions.ConnectionError:
return []



Loading…
取消
儲存