40 lines
1.3 KiB
Python
Executable File
40 lines
1.3 KiB
Python
Executable File
#!/usr/bin/env python
|
|
import os
|
|
import redis
|
|
import schedule
|
|
import time
|
|
|
|
|
|
if __name__ == '__main__':
|
|
from django import setup
|
|
from django.conf import settings
|
|
from django.core.management import call_command
|
|
from django.utils import timezone
|
|
|
|
# initialize Django
|
|
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'weirdlittleempire.settings')
|
|
setup()
|
|
|
|
# schedule jobs
|
|
schedule.every().minute.do(call_command, 'send_queued_mail')
|
|
rebuild_at = timezone.now() + timezone.timedelta(minutes=6)
|
|
schedule.every().hour.at(rebuild_at.strftime(':%M')).do(call_command, 'rebuild_index', interactive=False)
|
|
schedule.every().sunday.do(call_command, 'shopcustomers', delete_expired=True)
|
|
|
|
if hasattr(settings, 'SESSION_REDIS'):
|
|
redis_con = dict((key, settings.SESSION_REDIS[key]) for key in ['host', 'port', 'db', 'socket_timeout'])
|
|
pool = redis.ConnectionPool(**redis_con)
|
|
r = redis.Redis(connection_pool=pool)
|
|
pubsub = r.pubsub()
|
|
pubsub.subscribe('django-SHOP')
|
|
else:
|
|
pubsub = type(str('PubSub'), (), {'get_message': lambda s: None})()
|
|
|
|
while True:
|
|
message = pubsub.get_message()
|
|
if message:
|
|
if message['data'] == 'send_queued_mail':
|
|
call_command('send_queued_mail')
|
|
schedule.run_pending()
|
|
time.sleep(1)
|