39 lines
827 B
Python
39 lines
827 B
Python
|
#! /usr/bin/python
|
||
|
# -*- coding: utf-8 -*-
|
||
|
# cody by linker.lin@me.com
|
||
|
|
||
|
__author__ = 'linkerlin'
|
||
|
|
||
|
|
||
|
import threading
|
||
|
import Queue
|
||
|
import time
|
||
|
|
||
|
class BGWorker(threading.Thread):
|
||
|
def __init__(self):
|
||
|
threading.Thread.__init__(self)
|
||
|
self.q = Queue.Queue()
|
||
|
|
||
|
def post(self,job):
|
||
|
self.q.put(job)
|
||
|
|
||
|
def run(self):
|
||
|
while 1:
|
||
|
job=None
|
||
|
try:
|
||
|
job = self.q.get(block=True)
|
||
|
if job:
|
||
|
job()
|
||
|
except Exception as ex:
|
||
|
print "Error,job exception:",ex.message,type(ex)
|
||
|
time.sleep(0.05)
|
||
|
else:
|
||
|
#print "job: ", job, " done"
|
||
|
pass
|
||
|
finally:
|
||
|
time.sleep(0.05)
|
||
|
|
||
|
bgworker = BGWorker()
|
||
|
bgworker.setDaemon(True)
|
||
|
bgworker.start()
|