mirror of
https://github.com/simon987/task_tracker.git
synced 2025-04-10 14:06:43 +00:00
Fast task tracker (job queue) with authentication, statistics and web frontend
Features
- Stateless/Fault tolerent
- Integrate projects (or queue, tube) with Github/Gogs/Gitea - make workers aware of new commits
- Granular user permissions for administration tasks
- Prioritisable (project-level and task-level)
- Optionnal unique task constraint
- Per-project rate-limitting
- Per-project and per-worker stats monitoring
Terminology
task_tracker | Beanstalkd | Amazon SQS | IronMQ |
---|---|---|---|
Project | Tube | Queue | Queue |
Task | Job | Message | Message |
Recipe | Job data | Message body | Message body |
Submit | Put | Send message | POST |
Assign | Reserve | Receive message | GET |
Release | Delete | Delete message | DELETE |
max_assign_time | TTR (time-to-run) | Visibility timeout | Timeout |
- | Delay | Delivery delay | Delay |
- | - | Retention Period | Expires in |
Postgres setup
sudo su postgres
createuser task_tracker
createdb task_tracker
psql task_tracker
> ALTER USER "task_tracker" WITH PASSWORD 'task_tracker';
Nginx Setup
index index.html;
root /path/to/webroot;
location / {
try_files $uri $uri/ /index.html;
}
location ~ /api(.*)$ {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:3010$1?$args; # Change host/port if necessary
}
Running tests
cd test/
go test
Description
Languages
Go
53.3%
TypeScript
23.7%
HTML
16.5%
PLpgSQL
4.4%
CSS
1.2%
Other
0.9%