Esempio n. 1
0
 def update_task(self, id, name, status, command, cron, phonenum, email, errerkey):
     if id:
         update_status = False
         oldtask = Job.get(Job.id == id)
         if oldtask.cron != cron:
             update_status = True
         try:
             Job.update(name=name, status=status, command=command, cron=cron, phonenum=phonenum, email=email,
                        errerkey=errerkey).where(Job.id == id).execute()
             return self.updateTaskRun(id, update_status)
         except Exception, e:
             print e
Esempio n. 2
0
def run(item, cmd):
    stdout = u''
    stderr = u''
    begin = CommonUtils.get_unixtime()
    result = 1
    with controltower_database.execution_context() as ctx:
        # 修改任务状态为 开始运行
        try:
            Job.update(lastbegin=begin, lastend=0,
                       lastresult=3).where(Job.id == str(item.id)).execute()
        except Exception, e:
            print e
        try:
            reload(sys)
            sys.setdefaultencoding('utf-8')
            child = subprocess.Popen(cmd,
                                     shell=True,
                                     stdout=subprocess.PIPE,
                                     stderr=subprocess.PIPE)
            stdout, stderr = child.communicate()
        except Exception, e:
            print e
            stderr += traceback.format_exc()
Esempio n. 3
0
            if item.phonenum:
                url = 'http://123.56.40.122:30003/sms/sendsms'
                content = "优办ct测试"
                # content = u"错错错,都是我的错"
                SendMessage.sendPhoneMessage(url, {
                    "phone": '13351019032',
                    "content": content
                }, {})
            elif item.email:
                SendMessage().sendEmailMessage(
                    item.email.split(";"), u'报表监控系统异常',
                    u'报表监控系统,%s脚本出现运行异常,请尽快关注' % item.name)

        end = CommonUtils.get_unixtime()
        # 修改任务状态为 结束运行
        Job.update(lastend=end, lastresult=result, runtime=end -
                   begin).where(Job.id == str(item.id)).execute()
        # 记录脚本日志
        # print(stderr)
        try:
            stderr = stderr.decode('gbk').encode('utf-8')
            stdout = stdout.decode('gbk').encode('utf-8')
            Log.create(begin=begin,
                       end=end,
                       job=item.id,
                       msg=u'===============Print==========\n' + stdout +
                       u'\n===============Error==========\n\n' + stderr,
                       result=result)
        except Exception, e:
            print e