實現celery中出現擁擠佇列時,及時發郵件通知

2021-09-07 15:02:40 字數 3492 閱讀 2106

裡面有幾個常用的功能,以後值得借鑑。

如獲取指令碼目錄,ip,獲取shell返回值,傳送郵件等..

上午寫完,中午測試,下午上線~~

#

!/usr/bin/env python

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

import

smtplib

from email.mime.text import

mimetext

import

socket

import

fcntl

import

struct

import

sysimportos#

######################################

#實現celery**現擁擠佇列時,及時發郵件通知 #

#[email protected] #

#######################################

#從系統命令中獲取返回值

defrun_cmd(cmd):

try:

import

subprocess

except

importerror:

_, result_f, error_f =os.popen3(cmd)

else

: process = subprocess.popen(cmd, shell =true,

stdout = subprocess.pipe, stderr =subprocess.pipe)

result_f, error_f =process.stdout, process.stderr

errors =error_f.read()

iferrors:

pass

result_str =result_f.read().strip()

ifresult_f:

result_f.close()

iferror_f:

error_f.close()

return

result_str

#格式化命令,獲取指令碼絕對指令碼,crontab也可執行

defformat_cmd(cmd):

filename =sys.ar**[0]

dirname =os.path.dirname(filename)

abspath =os.path.abspath(dirname)

return

"python %s/manage_prd.py celery inspect %s -d celeryd@deploy

" %(abspath, cmd)

#獲取指定網絡卡的ip

defget_ip(ifname):

s =socket.socket(socket.af_inet, socket.sock_dgram)

return socket.inet_ntoa(fcntl.ioctl(s.fileno(), 0x8915, struct.pack('

256s

', ifname[:15]))[20:24])

#傳送郵件

celery多個佇列優先順序實現

celery 是乙個簡單 靈活且可靠的,處理大量訊息的分布式系統,並且提供維護這樣乙個系統的必需工具。它是乙個專注於實時處理的任務佇列,同時也支援任務排程。優先順序佇列問題 celery 官方給出的是不支援優先順序佇列 建議看看這個論壇 或者 celery中broker 常用的是rabbitmq,r...

數字在排序陣列中出現的次數java實現

統計乙個數字在排序陣列中出現的次數。陣列是排序的,所以重複出現的數字是相鄰排列的。用二分查詢演算法,找到第一次出現的位置,和 最後一次出現的位置。判斷第一次出現的位置條件為 當前數字的前乙個是否與之相等,若是則繼續查詢,否則該位置就是第一次出現的位置。判斷最後一次出現的位置條件為 當前數字的後乙個是...

實現刪除字串中出現次數最少的字元

題目 華為 描述 實現刪除字串中出現次數最少的字元,若多個字元出現次數一樣,則都刪除。輸出刪除這些單詞後的字串,字串中其它字元保持原來的順序。題目類別 字串 難度 中級 執行時間限制 10sec 記憶體限制 128mbyte 階段 入職前練習 輸入 字串只包含小寫英文本母,不考慮非法輸入,輸入的字串...