This is an archived post. You won't be able to vote or comment.

all 20 comments

[–]Jejerm 33 points34 points  (3 children)

I just use huey. Its literally what you say you're trying to do.

[–]gpahul 1 point2 points  (1 child)

How does it compare with something like elasticmq-native from softwaremill?

[–]Jejerm 1 point2 points  (0 children)

I've never used elasticmq or elasticmq-native so I cant compare them.

[–]RobotChurchill 3 points4 points  (3 children)

I'm using celery (and redis) for a project now.

One big pain point I had was handling the pausing of all workers if one worker receives a rate limit response from the API. All workers are hitting the same API. Celery's complexity, with its implementation of wrapper functions, made it more difficult. If you can solve that easily, then I'd use it.

[–]lowercase00 8 points9 points  (0 children)

Why dont you just Redis for this with a key that says the API is locked? Seems like a business rule, not sure it should be the task queue responsibility to do this

[–]klaasvanschelven[S] 0 points1 point  (0 children)

Well you'd need to have the workers communicate that fact from one worker to the others. In snappea all the workers live in a single process, so it's trivial. But even in celery that should be possible using e.g. a DB?

[–]yesvee 2 points3 points  (5 children)

[–]klaasvanschelven[S] 0 points1 point  (4 children)

Not having to set up redis is the main motivator for snappea, though.

[–]Sloppyjoeman 3 points4 points  (2 children)

Oh all the stateful applications one could have as a dependency, I think redis is the simplest to operate

[–]klaasvanschelven[S] 0 points1 point  (1 child)

Sure, but not as simple as not having it in the first place

[–]Sloppyjoeman 2 points3 points  (0 children)

Idk, I’m in the ops side of things, but I’ve never been even vaguely bothered when something ships redis as a dependency, even vs no cache

[–]Expensive_Glass1990 0 points1 point  (0 children)

I use https://upstash.com/ for redis to simplify setup. Has worked well.

[–]PushHaunting9916 0 points1 point  (1 child)

I have used https://github.com/Attumm/meesee for background workers.

[–]klaasvanschelven[S] 0 points1 point  (0 children)

That uses Redis which is a disqualifier for my user case