sergeytsalkov / brooce Goto Github PK
View Code? Open in Web Editor NEWBrooce is a language-agnostic job queue with a redis backend. It was written in Go.
License: GNU General Public License v3.0
Brooce is a language-agnostic job queue with a redis backend. It was written in Go.
License: GNU General Public License v3.0
Maybe I'm missing something but if you add 2 Jobs with a lock on a worker with only one queue. The first one will be executed and the remaining one will be moved to the delay queue (If you don't delete them through the options instead of moving them to the delay queue.)
The default value for the delay queue is 60s. If this first job is done and a new job arrives with the same lock within the 60s it will be executed. In that way the second job could be stuck in the delay queue forever.
Is this intended or is there a way to move a incoming jobs to the delay queue and execute the jobs from the delay queue first?
Would be much better if we could see all workers with some status light (green - alive, yellow - heartbeat slow, red - dead).
I think I'm missing something? 'server:5' In this example: Locks That Multiple Jobs Can Hold
Is that the id of a worker you're sending the shell command to? I don't really get how I can send different shell commands to specific workers, for running bash files as example.
I followed the steps in the quick start without any issues. I then tried to add the following cron job:
$ redis-cli HSET "brooce:cron:jobs" "cron-long-sleeper" "* * * * * queue:common sleep 120"
(integer) 1
It was added to redis but it is not being run by brooce nor is it viewable in the cron jobs
tab.
redis-server version is v=3.0.6
my brooce.conf
:
{
"cluster_name": "brooce",
"global_job_options": {
"timeout": 3600,
"maxtries": 1
},
"web": {
"addr": ":8080",
"certfile": "",
"keyfile": "",
"username": "admin",
"password": "ddshrlvt",
"no_auth": false,
"disable": false
},
"file_output_log": {
"enable": false
},
"redis_output_log": {
"drop_done": false,
"drop_failed": false,
"expire_after": 10
},
"job_results": {
"drop_done": false,
"drop_failed": false
},
"redis": {
"host": "localhost:6379",
"password": "",
"db": 0
},
"suicide": {
"enable": false,
"command": "",
"time": 0
},
"queues": [
{
"name": "common",
"workers": 1
},
{
"name": "parallel",
"workers": 5
}
],
"path": ""
}
First of all, thanks for creating and sharing a nice software!
Could you add LICENSE file?
The following page may help for choosing a license.
Choose an open source license - Choose a License
I hope you choose a permissive license like MIT or Apache.
Thanks!
Maybe we can use universal redis client rather than separated files and build options (before document it):
https://godoc.org/github.com/go-redis/redis#UniversalClient
What do you think? It's much cleaner to use the same binary in different environments, but ScanKeys() needs some alteration too.
Thanks!
How do I connect brooce to a TLS enabled Redis (using rediss scheme)?
I'm always able to connect to TLS disabled Redis clusters though.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.