5 import cPickle
as pickle
17 from subprocess
import Popen
18 from subprocess
import PIPE
19 from cement.core
import foundation
35 logger = logging.getLogger(
'console')
36 logger.setLevel(logging.DEBUG)
39 ch = logging.StreamHandler()
40 ch.setLevel(logging.DEBUG)
43 formatter = logging.Formatter(
'%(asctime)s - %(name)s - %(levelname)s - %(message)s')
46 ch.setFormatter(formatter)
56 configName =
'../ini/postprocessor_task_log-rt.ini' 61 logging.config.fileConfig(configName)
78 log.debug(
"Popen: %s", str(cmd))
79 process = Popen(cmd, stdout=PIPE, stdin=PIPE, stderr=PIPE, shell=
True, close_fds=
True)
80 if isinstance(inputStream, basestring)
and log
is not None:
81 log.debug(
"process.communicate(), len(inputStream)=" + str(len(inputStream)))
82 (output, err) = process.communicate(input=inputStream)
84 log.debug(
"Process std_error: %s", str(err))
85 log.debug(
"Process output len =" + str(len(output)))
86 exitCode = process.wait()
88 log.debug(
"Process response exitCode: %s", str(exitCode))
90 return output, exitCode
95 url =
'https://retrip.jp/external-link/?article_content_id=482406' 96 urlObj =
URL(siteId, url)
98 processedContent = {
'link':url}
99 processedContents = [base64.b64encode(json.dumps(processedContent))]
102 batchItem =
BatchItem(siteId=siteId, urlId=urlObj.urlMd5, urlObj=urlObj, urlContentResponse=urlContentResponse)
103 batchItem.properties = {
"LINK_RESOLVE":{
"method":{
"retrip.jp/external-link":
"GET"}}}
105 return Batch(id, batchItems=[batchItem])
114 inputFile =
'/tmp/input.tmp' 115 outputFile =
'/tmp/output.tmp' 117 cmd =
"cd ..; ../bin/postprocessor_task.py --config=../ini/postprocessor_task-rt.ini --inputFile=%s > %s" % (str(inputFile), str(outputFile))
119 f = open(inputFile,
'w')
126 log.debug(
"len(output) = %s", str(len(output)))
127 log.debug(
"exitCode: %s", str(exitCode))
128 log.debug(
"===Finish===")
133 sys.stdout.write(
"Thread ID = %s started.\n" % str(id))
137 sys.stdout.write(
"Thread ID = %s stopped.\n" % str(id))
140 if __name__ ==
'__main__':
148 for i
in xrange(testCount):
149 threadsList.append(threading.Thread(target=threadRun, kwargs={
'id':i,
'log':logger}))
150 threadsList[-1].
start()
152 for i
in xrange(testCount):
153 threadsList[i].
join()
def threadRun(id=0, log=None)
def generateInputStream(id=0)
def executeCommand(cmd, inputStream=None, log=None)