Task collections

Task collections are useful when you need to run a pack of tasks e.g. on program startup or shutdown. Currently collections support running task functions only either in a foreground (one-by-one) or as the threads.

Function priority must be specified as a number (lower = higher priority).

FunctionCollection

Simple collection of functions.

from neotasker import FunctionCollection

def error(**kwargs):
   import traceback
   traceback.print_exc()

startup = FunctionCollection(on_error=error)

@startup
def f1():
    return 1

@startup(priority=100)
def f2():
    return 2

# lower number = higher priority
@startup(priority=10)
def f3():
    return 3

result, all_ok = startup.execute()
class neotasker.FunctionCollection(**kwargs)
Parameters:
  • on_error – function, launched when function in collection raises an exception
  • on_error_kwargs – additional kwargs for on_error function
  • include_exceptions – include exceptions into final result dict
append(f, priority=None)

Append function without annotation

Parameters:
  • f – function
  • priority – function priority
execute()

Run all functions in collection

Returns:a tuple { ‘<function>’: ‘<function_return>’, …}, ALL_OK where ALL_OK is True if no function raised an exception
remove(f)

Remove function

Parameters:f – function
run()

Run all functions in collection

Returns:result dict as

{ ‘<function>’: ‘<function_return>’, … }