# pg_task config to run pg_task add it to line ```conf shared_preload_libraries = 'pg_task' ``` by default pg_task use table ```conf pg_task.default_table = 'task' ``` and sleep timeout ```conf pg_task.default_timeout = 1000 ``` milliseconds and reset count ```conf pg_task.default_reset = 60 ``` of timeout by default pg_task run on local database `postgres` with user `postgres` with default schema (in search path) with default table (as abow) and default timeout (as abow) to run specific database and/or user and/or schema and/or table and/or timeout set line (in json format) ```conf pg_task.json = '[{"data":"database1"},{"data":"database2","user":"username2"},{"data":"database3","schema":"schema3"},{"data":"database4","table":"table4"},{"data":"database5","timeout":100}]' ``` if database and/or user and/or schema and/or table does not exist then pg_task create it # pg_task using by default pg_task create table with folowing columns id bigserial - primary key parent bigint - foreign key to parent task (if need) plan timestamp - planned time of start start timestamp - actial time of start stop timestamp - actial time of stop group text - groupping task max int - maximum concurently tasks in group pid int - id of process executing task input text - sql to execute output text - result received error text - error occured state state - PLAN, TAKE, WORK, DONE, FAIL or STOP timeout interval - allowed time to run delete boolean - autodelete (if output is null) repeat interval - autorepeat interval drift boolean - see below count integer - maximum task executed by current worker live interval - maximum time of live of current worker remote text - connect to remote database (if need) but you may add any needed colums and/or make partitions to run task more quickly execute sql command ```sql INSERT INTO task (input) VALUES ('SELECT now()') ``` to run task after 5 minutes write plannded time ```sql INSERT INTO task (plan, input) VALUES (now() + '5 min':INTERVAL, 'SELECT now()') ``` to run task at specific time so write ```sql INSERT INTO task (plan, input) VALUES ('2029-07-01 12:51:00', 'SELECT now()') ``` to repeat task every 5 minutes write ```sql INSERT INTO task (repeat, input) VALUES ('5 min', 'SELECT now()') ``` if write so ```sql INSERT INTO task (repeat, input, drift) VALUES ('5 min', 'SELECT now()', false) ``` then repeat task will start after 5 minutes after task done (instead after planned time as default) if exception occures it catched and writed in error as text ```sql INSERT INTO task (input) VALUES ('SELECT 1/0') ``` if some group needs concurently run only 2 tasks then use command ```sql INSERT INTO task (group, max, input) VALUES ('group', 2, 'SELECT now()') ``` if in this group there are more tasks and they are executing concurently by 2 then command ```sql INSERT INTO task (group, max, input) VALUES ('group', 3, 'SELECT now()') ``` will execute task as more early in this group (as like priority) to run task on remote database use sql command ```sql INSERT INTO task (input, remote) VALUES ('SELECT now()', 'user=user host=host') ```