By Release 19, a lot of processing has been put to the background and a task manager was created in order to manage and execute these tasks in the background.
How does it work?
Tasks are generated by the RDA Registry Software and the task parameters are provided in the dbs_registry.
tasks table. Every so often, the ARDC TaskManager will hit the database looking for any tasks under the PENDING status and hit a URL to execute the task. This is repeated until there are no tasks under the PENDING state.
git clone https://github.com/au-research/ANDS-TaskManager.git ands-taskmanager
polling_frequency = 5 #how often does the task manager hit the database
max_thread_count = 5 #how many concurrent threads are run
max_up_seconds_per_task = 7200 #when a task run past this number of seconds, consider it failed
run_dir = '/opt/ands-taskmanager/' #the directory of the task manager
admin_email_addr = "" #for reporting purposes
response_url='https//localhost/api/task/exe/' #the exe to execute a task eg. http://localhost/api/task/exe/:taskid
maintenance_request_url = 'http://localhost/api/task/run/' #maintenance task run when there's no task required
data_store_path = run_dir + 'result_contents'
log_dir= run_dir + 'log'
log_level = "INFO"
Install as a service
It is recommended to install the ANDS-TaskManager as a service for stability purposes as well and improve the up time of the Task Manager
cp ands-taskprocessor /etc/init.d/ands-taskmanager
chmod 755 /etc/init.d/ands-taskmanager
chkconfig --add ands-taskmanager
chkconfig ands-taskmanager on
service ands-taskmanager start