純粹是記錄一下自己在剛開始使用的時候遇到的一些坑,以及自己是怎樣通過配合redis來解決問題的。
文章分為三個部分,一是怎樣跑起來,並且怎樣監控相關的佇列和任務;二是遇到的幾個坑;三是給一些自己配合redis使用的**示例。
一.celery使用:
celery_autowork_task.py【任務執行方法的定義的地方】
from celery import celeryautowork = celery('auto_work', broker = 【celery_broker】, backend = '')
autowork.conf.celery_timezone = 'asia/shanghai' # 時區
autowork.conf.celeryd_concurrency = 4 # 任務併發數
autowork.conf.celeryd_task_soft_time_limit = 300 # 任務超時時間
autowork.conf.celery_disable_rate_limits = true # 任務頻率限制開關
autowork.conf.celery_routes = ,
}@autowork.task(bind=true,name="autowork_check_barcode_recharge",max_retries=15)
def autowork_check_barcode_recharge(self,recharge_id):
time_begin=datetime.datetime.now()
try:
pass
except exception as exc:
retries=self.request.retries
if retriestest.py【呼叫任務以及檢查任務的執**況】
def cancel_pre_celery_task_and_excute_next_task(self,recharge_record):
recharge_work_guid="recharge_work_guid:%d:%s"%(recharge_record.shop_id,recharge_record.num)
from handlers.celery_autowork_task import autowork_check_barcode_recharge
if redis.get(recharge_work_guid): #上次是否有執行這個實際業務中的任務
from celery_autowork_task import autowork
autowork.control.revoke(redis.get(recharge_work_guid).decode('utf-8'),terminate=true) #如果有執行,則中斷
autowork_guid=autowork_check_barcode_recharge.delay(recharge_record.id) #得到本次的任務guid
redis.set(recharge_work_guid,str(autowork_guid)) #儲存到redis裡面去
redis.expire(recharge_work_guid,3600)
自己使用Outlook 2003 的一些小技巧
1.最小化時隱藏到托盤區。我暈。我記得當初是搜尋才找到結果的,其實就直接在右下角圖示上右擊,選最小化時隱藏就可以了。2.每次傳送郵件後自動抄送到某個位址 一般會自動抄送乙份給自己確認是否傳送成功了。在規則裡面新增乙個就ok。3.現在想不起了 outlook的確是乙個相當有效的軟體 除了有時候稍微有點...
python中的一些小坑
a 1 b 1 這兩個看起來好像也沒什麼差別嘛,就是乙個都好而已 列印出來的結果卻差很多!print type a print a print type b print b 1 1,a 1 2,3 b a a 4,5,6 a a 4,5,6 print a,b 使用 列印結果 1,2,3,4,5,6...
給陣列賦值的一些小坑
陣列定義同時初始化是個常見的問題,比如,int a 3 其中a 0 a 1 a 2 這三個值都為0。如果這樣定義,同時賦值 int a 3 是不是意味著a 0 1,a 1 1,a 2 1呢?這是乙個很容易出錯的問題,答案肯定不是這樣,筆者在多個編譯器上試過,結果只有a 0 1,而a 1 0,a 2 ...