Celery是一種分布式任務隊列,非常適合異步處理和任務調度。它可以與MySQL數據庫集成,使得我們可以輕松地將任務結果存儲在數據庫中。
# 導入數據庫模塊 from celery import Celery from celery.schedules import crontab from datetime import datetime import pymysql # 定義數據庫連接信息 pymysql.install_as_MySQLdb() app = Celery('tasks', broker='pyamqp://guest@localhost//') db = pymysql.connect('localhost', 'username', 'password', 'database_name', charset='utf8') # 定義定時任務 @app.task def scheduled_task(): # 執行任務 result = my_task.delay() # 將任務結果存儲到數據庫 try: with db.cursor() as cursor: sql = "INSERT INTO task_log (task_id, start_time) VALUES ('%s', '%s')" % (result.id, datetime.now()) cursor.execute(sql) db.commit() except: db.rollback() # 定義任務邏輯 @app.task def my_task(): # 執行任務 result = do_something() return result
上面的代碼片段中,我們首先導入了pymysql模塊,并且定義了MySQL數據庫的連接信息。然后,我們創建了一個Celery實例,并且使用pymysql模塊來創建數據庫連接。接下來,我們定義了一個定時任務,用來執行我們的任務,并將任務結果存儲在數據庫中。最后,我們定義了任務邏輯,用來執行實際任務的邏輯。
總的來說,使用Celery和MySQL非常簡單,只需要按照上述步驟進行操作即可。使用Celery可以更好地管理異步任務,而使用MySQL可以更好地管理任務結果。兩者相結合,可以提高任務執行效率,讓我們的任務處理更加高效。
上一篇cdc同步 mysql
下一篇前端css3選擇器作用