celery專案中的應用

2021-10-12 07:35:34 字數 2208 閱讀 8241

我的目錄結構是這樣的

**就是參考celery官方教程寫的了.

# -*- coding: utf-8 -*-

from __future__ import absolute_import, unicode_literals

from celery import celery

__author__ =

"liunan"

__date__ =

"2020/12/16 4:31 下午"

from

.celery_cfg import backend, brokers

'imcenter'

, broker=brokers,

backend=backend,

include=

['imcenter.tasks'])

result_expires=

3600,)

'asia/shanghai'

# -*- coding: utf-8 -*-

from __future__ import absolute_import, unicode_literals

__author__ =

"liunan"

__date__ =

"2020/12/16 4:31 下午"

# -*- coding: utf-8 -*-

import logging

import time

import jpush

from

_logger = logging.getlogger(__name__)

defmypush

(a,b,c,d)

:# 生產環境推送

print

('傳送簡訊中'

)

# -*- coding: utf-8 -*-

__author__ =

"liunan"

__date__ =

"2020/12/16 4:31 下午"

brokers =

"redis://:password@localhost:6379/1"

backend =

"redis://:password@localhost:6379/2"

切換到celery所在專案的目錄

完事兒了, 就這麼簡單. 生產者呼叫task就行了.

這樣

from openerp.imcenter.celery import 

task_args =(1

,2,3

,4)'imcenter.tasks.mypush'

,args=task_args)

task.delay()

mypush.delay(1,

2,3,

4)

常用

可以接受複雜的引數

routing_key:自定義路由鍵

queue:指定傳送到哪個佇列

exchange:指定傳送到哪個交換機

priority:任務佇列的優先順序,0到255之間,對於rabbitmq來說0是最高優先順序

headers:為任務新增額外的訊息

# 任務my_task將會被傳送到my_queue佇列中,並且在傳送10秒之後執行。(1

,2,3

,4), queue=

'my_queue'

, countdown=

10)

不建議用,因為不會校驗是否存在這個方法,直接就傳送成功裡,celery執行就會報錯

安裝$ pip install flower執行

flower --port=5555

或者$ celery flower --address=127.0.0.1 --port=5555開啟 http://localhost:5555:

在django專案中使用celery非同步傳送郵件

一 在專案虛擬環境中安裝celery和redis 在tasks.py中新增如下 from celery import celery from django.conf import settings from django.core.mail import send mail django環境初始化 ...

gradle在專案中的應用

compilesdkversion 代表是使用的sdk版本buildtoolsversion 代表構建工具的版本,一般都是sdk相配套的。在專案建立的時候就會自動生成signingconfigs 簽名配置,主要有 develop,release develop 開發時候的配置keyalias apk...

Kibana在專案中的應用

雖然本文主要闡釋kibana 在專案中的應用 但是我們需要了解乙個常識,那就是一般情況下elk都是組合應用的,在我們的專案中我們也是一起使用的,但是由於對kibana 的頗具熱情,所以本文是對kibana的初始 先說下專案背景,我是datawarehouse 的 免不了會對些個datastage j...