24课笔记&time

案例一、
import time

from utils import WriteLog
import sys
reload(sys)
sys.setdefaultencoding("utf-8")

def Xh():
for i in xrange(1, 10000):
print(i)
# sys.stdout.write(str(i))
time.sleep(0.1)
案例二、
import codecs
import threading

import os


class WriteLog(threading.Thread):
def __init__(self, logName):
super(WriteLog, self).__init__()
self.logName = logName
self.lock = threading.Lock() #课上这里写是Lock没有写()
self.contexts = []
self.mkfile()

def mkfile(self):
if not os.path.exists(self.logName):
with codecs.open(self.logName, 'w') as f:
f.write("This file is log for {0}\n".format(self.logName))

def write(self, context):
self.contexts.append(context)

def run(self):
while 1:
self.lock.acquire()
if len(self.contexts) != 0:
with codecs.open(self.logName, "a") as f:
for context in self.contexts:
f.write(context)
del self.contexts[:]
self.lock.release()
案例三、
import time

import sys

from lesson24.test.utils import TraceLog


class Server(object):
def printLog(self):
print("start server\n")
for i in range(100):
print(i)
time.sleep(0.1)
print("end server\n")



if __name__ == '__main__':
traceLog = TraceLog("main.log")
traceLog.start()
sys.stdout = traceLog
sys.stderr = traceLog
server = Server()
server.printLog()

# 每当调用print的时候,底层就是在代用sys.stdout.write(str)
# sys.stdout.write() = traceLog.write()

案例四、
from kombu import Queue, Exchange

BROKER_URL = "redis://192.168.48.136:6379/1"
CELERY_RESULT_BACKEND = "redis://192.168.48.136:6379/2"


CELERY_QUEUES = {
Queue("default",Exchange("default"),routing_key="default"),
Queue("for_task_A",Exchange("for_task_A"),routing_key="for_task_A"),
Queue("for_task_B",Exchange("for_task_B"),routing_key="for_task_B")
}

CELERY_ROUTES = {
"demon3.taskA":{"queue":"for_task_A","routing_key":"for_task_A"},
"demon3.taskB":{"queue":"for_task_B","routing_key":"for_task_B"}
}
CELERY_TIMEZONE = 'UTC'
CELERYBEAT_SCHEDULE = {
'taskA_schedule' : {
'task':'demon3.taskA',
'schedule':2,
'args':(5,6)
},
'taskB_scheduler' : {
'task':"demon3.taskB",
"schedule":10,
"args":(10,20,30)
},
'add_schedule': {
"task":"demon3.add",
"schedule":5,
"args":(1,2)
}
}

案例五、
from celery import Celery

app = Celery()
app.config_from_object("celeryconfig")

@app.task
def taskA(x, y):
return x*y

@app.task
def taskB(x, y, z):
return x+y+z

@app.task
def add(x, y):
return x+y
案例六、
from celery import Celery

app = Celery()
app.config_from_object("celeryconfig")

@app.task
def taskA(x, y):
return x*y

@app.task
def taskB(x, y, z):
return x+y+z

@app.task
def add(x, y):
return x+y
案例七、
import time

from demon3 import *

re1 = taskA.delay(10, 20)

re2 = taskB.delay(100, 200, 300)

re3 = add.delay(1000, 2000)

time.sleep(2)
print(re1.result)
print(re2.result)
print(re3.status)
print(re3.result)

猜你喜欢

转载自www.cnblogs.com/iwss/p/9116085.html