Example #1
0
 def task2fail(task_id):
     try:
         obj = Task.get(Task.id == task_id)
         obj.status = Task.STATUS_FAILED
         obj.save()
     except Task.DoesNotExist:
         return True
Example #2
0
    def is_alive_task(task_id, core):
        try:
            obj = Task.get(Task.id == task_id)
            # may be wrong
            if obj.status == Task.STATUS_EXCEPTION:
                return False
            if obj.status == Task.STATUS_FAILED:
                return False
            if obj.status == Task.STATUS_DONE:
                return False

            print("find possible alive task %i pid is %i" % (task_id, obj.pid) )
            pid = obj.pid
            return core.api.os.shell.is_alive(pid)
        except Task.DoesNotExist:
            return False
Example #3
0
    def run(self):
        """
        Run task
        """
        # set django env to load django settings.py and get database config
        # os.environ.setdefault("DJANGO_SETTINGS_MODULE", "web.settings")
        # from django.core import management
        # append web module ti python path
        sys.path.append(os.path.join(self.core.settings.root, 'src', 'web'))
        from web.taskqueue.models_peewee import TaskPeewee as Task
        print("start working on  task %s" % self.task_id)
        task = Task.get(Task.id == self.task_id)

        if task.status != Task.STATUS_PENDING:
            raise Exception("Incorrect status: " + task.status)

        # create core with settings for current task
        settings = None
        if task.settings:
            settings = json.loads(task.settings)

        start(settings)

        # configure logger

        logger = logging.getLogger()

        # remove all handlers
        logger.handlers = []
        # all to output, tornado will write to db from output of this process
        ch = logging.StreamHandler(sys.stdout)
        ch.setLevel(logging.DEBUG)
        formatter = logging.Formatter('%(asctime)s [%(levelname)s] %(module)s.%(funcName)s: %(message)s')
        logger.addHandler(ch)
        ch.setLevel(logging.INFO)
        logger.addHandler(ch)
        self.do_task(task, Task.LOCK)
        sys.exit(0)
Example #4
0
 def get_object_or_404(id):
     try:
         obj = Task.get(Task.id == id)
         return obj
     except Task.DoesNotExist:
         return []