Exemple #1
0
 def _task(self):
     status = Task(self.task_id).status()
     return Task(status['id'], {
         'type': status['task_type'],
         'description': status['description'],
         'state': status['state'],
     })
Exemple #2
0
 def close(self):
     try:
         ee.InitializeThread(self.credentials)
         status = Task(self.task_id).status()
         if status['state'] in (Task.State.READY, Task.State.RUNNING):
             logger.debug('Canceling Earth Engine Task {0}: {1}'.format(
                 self, status))
             Task(
                 status['id'], {
                     'type': status['task_type'],
                     'description': status['description'],
                     'state': status['state'],
                 }).cancel()
     except ee.EEException as e:
         logger.warn('Failed to cancel task {0}: {1}'.format(self, e))
Exemple #3
0
 def run(self):
     logger.info(
         'Monitoring Earth Engine export. task_id: {0}, destination: {1}'.
         format(self.task_id, self.destination))
     ee.InitializeThread(self.credentials)
     while self.running():
         time.sleep(10)
         status = Task(self.task_id).status()
         state = status['state']
         if state == Task.State.READY:
             self._update_state(State.PENDING)
         elif state == Task.State.RUNNING:
             self._update_state(State.ACTIVE)
         elif state == Task.State.COMPLETED:
             self._update_state(State.COMPLETED)
             self.resolve()
             return
         else:
             error_message = status[
                 'error_message'] if state == Task.State.FAILED else 'Earth Engine export was canceled'
             self._status = {
                 'state': State.FAILED,
                 'message': error_message
             }
             raise Exception(error_message if error_message else
                             'Earth Engine export failed')
Exemple #4
0
 def run( cls, task: Task ) -> bool:
     task.start()
     status: Dict = task.status()
     print(f" Task Status = {status}")
     t0 = time.time()
     while True:
         time.sleep(10)
         status: Dict = task.status()
         elapsed = time.time() - t0
         print(f" Task State = {status['state']}, elapsed = {elapsed:.2f} sec ({elapsed / 60:.2f} min)")
         if not task.active():
             if status['state'] == Task.State.FAILED:
                 print(f"Task failed, error report: {status['error_message']}")
                 return False
             else:
                 return True
Exemple #5
0
 def _task_status(self):
     task = Task(self.task_id).status()
     if task['state'] not in (Task.State.UNSUBMITTED, Task.State.FAILED):
         return self._to_status(task)
     else:
         logger.exception('Export to Google Drive failed. Task: ' + str(task))
         return {'state': 'FAILED',
                 'description': 'Export to Google Drive failed: ' + task['error_message']}
def gee_running_tasks():
    tl = Task.list()
    tl_running = filter(lambda x: x.state ==
                        Task.State.RUNNING and x.task_type == 'INGEST', tl)
    tl_running = map(lambda x: dict(
        id=x['id'], asset_id=x['description'].split(':')[1].strip()), tl_running)
    # pprint.pprint(list(tl_running))
    return tl_running
Exemple #7
0
import ee, os, time, urllib
from ee.batch import Task, Export
from typing import List, Union, Tuple, Dict, Optional
ee.Initialize()

cancel_tasks = True

print( "Current tasks:")
for task in Task.list():
    print( f" TASK {task.id}: {task.status()}")

if cancel_tasks:
    for task in Task.list():
        if task.active():
            print( f"Canceling Task <{task.id}>")
            task.cancel()
Exemple #8
0
def find_task(task_id):
    return next(task for task in Task.list() if task.id == task_id)