mirror of
https://github.com/simon987/task_tracker.git
synced 2025-04-21 02:56:45 +00:00
69 lines
2.1 KiB
Markdown
69 lines
2.1 KiB
Markdown
|
||
<a href='https://github.com/jpoles1/gopherbadger' target='_blank'></a>
|
||
[](https://www.codefactor.io/repository/github/simon987/task_tracker)
|
||
[](https://ci.simon987.net/job/task_tracker/)
|
||
|
||
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
|
||
```bash
|
||
sudo su postgres
|
||
createuser task_tracker
|
||
createdb task_tracker
|
||
psql task_tracker
|
||
> ALTER USER "task_tracker" WITH PASSWORD 'task_tracker';
|
||
```
|
||
|
||
### Nginx Setup
|
||
|
||
```nginx
|
||
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
|
||
```bash
|
||
cd test/
|
||
go test
|
||
```
|