-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcron_worker.py
80 lines (61 loc) · 2.08 KB
/
cron_worker.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import os
os.environ["CALY_DB_CONF"] = "./key/conf.json"
from celery import Celery
from celery.task import periodic_task
from celery.schedules import crontab
from datetime import timedelta
from manager import db_manager
import json
import time
import caldavclient
import time
import uuid
from common.util import utils
from datetime import datetime
from pytz import timezone
from caldavclient import CaldavClient
from caldavclient.exception import AuthException
from common import cryptoo
import logging
from bot import slackAlarmBot
from common import FCM
from model import mFcmModel
from model import syncEndModel
from common.util.statics import *
from common import caldavPeriodicSync
import logging
import logging.handlers
#
sqla_logger = logging.getLogger('sqlalchemy.engine.base.Engine')
for hdlr in sqla_logger.handlers:
sqla_logger.removeHandler(hdlr)
with open('./key/conf.json') as conf_json:
conf = json.load(conf_json)
app = Celery('tasks', broker='amqp://'+conf['rabbitmq']['user']+':'+conf['rabbitmq']['password']+'@'+conf['rabbitmq']['hostname']+'//', queue='periodicSyncQueue')
app.conf.task_default_queue = 'periodicSyncQueue'
@periodic_task(run_every=timedelta(seconds=300))
def accountDistributor():
logging.info("hello")
accountList = utils.fetch_all_json(
db_manager.query(
"""
SELECT *
FROM USERACCOUNT
WHERE is_active != 3
"""
)
)
for account in accountList:
if account['login_platform'] == "google":
continue
syncWorker.delay(account)
@app.task()
def syncWorker(account):
# mylogger = logging.getLogger()
# mylogger.setLevel(logging.DEBUG)
# rotatingHandler = logging.handlers.TimedRotatingFileHandler(filename='log/'+'log_caldav_worker.log', when='midnight', interval=1, encoding='utf-8')
# fomatter = logging.Formatter('%(asctime)s %(levelname)s: %(message)s')
# rotatingHandler.setFormatter(fomatter)
# mylogger.addHandler(rotatingHandler)
logging.info("hello")
caldavPeriodicSync.sync(account)