Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge Request - Noizu Fork #19

Open
noizu opened this issue Aug 19, 2019 · 3 comments
Open

Merge Request - Noizu Fork #19

noizu opened this issue Aug 19, 2019 · 3 comments

Comments

@noizu
Copy link

noizu commented Aug 19, 2019

Hello sheharyarn, as mentioned previously I have a forked version of your library which adds support for priority levels, sharded workers (to avoid supervisor bottlenecks), node tenancy (jobs only run on the server they were created on or specified to run on), and dirty mnesia transactions using raw :mnesia module due to performance bottlenecks under high load.

I'd like to get things tidy enough to be able to merge upstread and avoid the need to maintain a separate fork. With that in mind I've made these features compile time configurable with the defaults behaving essentially like vanilla Que with the exception of the priority level changes and an error handler that treats :no_proc responses as success (which is negotiable) as they are generally caused by que jobs that exit too quickly.

However there is a breaking change to the table definition to include the priority level and node tenancy fields, and I am not sure if there is an elegant way to work around that with Memento or if I should further hide that change behind config options and modify the table structure only if tenancy and or priority levels are enabled.

When you have a chance give things a peak and let me know of any feedback or criticism you have that would need to be dealt with before making a merge request.

master...noizu:master

@noizu
Copy link
Author

noizu commented Aug 19, 2019

Forgive the typos in the readme section, haven't had enough coffee yet this morning.

@sheharyarn
Copy link
Owner

sheharyarn commented Aug 22, 2019

Wow! I went over your fork and I love all the interesting ideas and features you've been working on. I would love to collaborate with you on them and merge them into the package, but I believe we should focus on one at a time with individual Issue & PR for each feature:

  • Priority Queues (Priority Queues #20)
  • Distributed Workers
  • Throughput Optimization
  • Sharded Workers

This would ensure that we don't miss anything or accidentally introduce any regressions, and have up-to-date docs and full test coverage for each feature. We'll also be able to let users reliably update to newer versions by automatically migrating tables so definition changes don't break the code.

We can start with priority queues. I'll create an issue where we can discuss specific implementation details.

@sheharyarn sheharyarn mentioned this issue Aug 22, 2019
7 tasks
@sheharyarn sheharyarn changed the title Merge Request Discussion, Merge Request - Noizu Fork Aug 22, 2019
@noizu
Copy link
Author

noizu commented Aug 22, 2019

Sounds Good.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants