浏览代码

[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")) msgprint(_("Emails are muted"))
from_test = True 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() smtpserver = SMTPServer()


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


# reset value
cache.delete_value('cache_email_queue') cache.delete_value('cache_email_queue')
for e in emails: 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): def send_one(email, smtpserver=None, auto_commit=True, now=False):
'''Send Email Queue with given smtpserver''' '''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.""" """Remove mails older than 31 days in Outbox. Called daily via scheduler."""
frappe.db.sql("""delete from `tabEmail Queue` where frappe.db.sql("""delete from `tabEmail Queue` where
datediff(now(), creation) > 31""") 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): def lpush(self, key, value):
super(redis.Redis, self).lpush(self.make_key(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): def lpop(self, key):
return super(redis.Redis, self).lpop(self.make_key(key)) return super(redis.Redis, self).lpop(self.make_key(key))


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




正在加载...
取消
保存