Comments (7)
There's a Redis backend? 😃 Anyway, i don't see anything wrong with the perform
method, the fork()
and waitpid()
calls certainly cost a bit of performance, but that's not a bug. Or am i missing something?
from minion.
If you have an idea for speeding up the perform
method, please open a new issue or pull request.
from minion.
So, why you are using forking for task performing? For right exception handling or for good isolation or for some non-blocking features?
from minion.
For example, I have 1 millions jobs (dummy jobs without any logic) and only one worker and I'm trying to perform these jobs
with forking: 382 jobs per minute
without forking: 60000 jobs per minute
that's why can't see a reason, why I should use forking version of perform method
from minion.
All of those reasons, and don't forget that pretty much every non-trivial Perl application leaks memory, which is also the main reason Hypnotoad workers get restarted regularly. I believe it is the right default. If your jobs run so fast that you can perform 60000 per minute, why would you want to use a job queue in the first place?
But of course there are different architectures for workers, and you could handle multiple jobs concurrently with a UNIX specific prefork worker. That's why the public Minion API allows you to just ignore the perform
method and build your own version of it. In fact, i'm looking forward to more pluggable backends (Minion::Backend::Redis
) and worker commands (Minion::Command::minion::fast_prefork_worker
) on CPAN. 😄
from minion.
Maybe you are right. My point is Minion has a very good API and I can use it not only for heavy jobs, but also for some another tasks, like notifications (delayed tasks) and etc. That's why I want to have much faster worker runner for these cases.
i'm looking forward to more pluggable backends (Minion::Backend::Redis)
Right now my Redis backend passes all standart Minion tests for backends. But I should to speed up some methods. And I'm not sure about Redis transactions, which completely different from Postgres transaction. I need some tests for these cases.
from minion.
@alexvaluyskiy did you find any reliable solution to make this works ? could you please share if you have any suggestion to make the Job running faster.
from minion.
Related Issues (20)
- Add a Minion guide HOT 2
- [Feature Request] Add search bar to Minion Admin site HOT 7
- fix typo at Minion::Guide HOT 1
- [Feature Request] ability to filter delayed jobs HOT 1
- Incorrect count for attempts upon ultimate failure? HOT 3
- popper.js not found HOT 2
- [Feature request] allow signals to be sent to workers as well HOT 5
- A Mojolicious app w/ Minion::Backend::Pg always connects to PostgreSQL db on startup HOT 2
- Repair may stuck when many failed jobs HOT 6
- Batch enqueue HOT 2
- linkcheck doesn't work - links never checked HOT 5
- Minion.unlock() concurrency HOT 4
- [Feature Request] Minion Backend list_jobs: using args as search filter HOT 5
- Minion::Admin can not remove retry inactive task HOT 6
- [Feature Request] Allow registering subclass of Minion::Job as task HOT 13
- [Feature Request] Include Test::Minion subclass/role of Test::Mojo HOT 10
- action buttons don't perform their actions, only redirect HOT 2
- Calling `finish`, `note` etc in task code fails on macOS while communicating over TCP HOT 6
- [Feature Request] Finalizier task for locks
- [ Feature request ] An event for progress? HOT 19
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from minion.