Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6667081
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 26, 20262026-05-26T02:53:45+00:00 2026-05-26T02:53:45+00:00

I am using RabbitMQ to have worker processes encode video files. I would like

  • 0

I am using RabbitMQ to have worker processes encode video files. I would like to know when all of the files are complete – that is, when all of the worker processes have finished.

The only way I can think to do this is by using a database. When a video finishes encoding:

UPDATE videos SET status = 'complete' WHERE filename = 'foo.wmv'
-- etc etc etc as each worker finishes --

And then to check whether or not all of the videos have been encoded:

SELECT count(*) FROM videos WHERE status != 'complete'

But if I’m going to do this, then I feel like I am losing the benefit of RabbitMQ as a mechanism for multiple distributed worker processes, since I still have to manually maintain a database queue.

Is there a standard mechanism for RabbitMQ dependencies? That is, a way to say “wait for these 5 tasks to finish, and once they are done, then kick off a new task?”

I don’t want to have a parent process add these tasks to a queue and then “wait” for each of them to return a “completed” status. Then I have to maintain a separate process for each group of videos, at which point I’ve lost the advantage of decoupled worker processes as compared to a single ThreadPool concept.

Am I asking for something which is impossible? Or, are there standard widely-adopted solutions to manage the overall state of tasks in a queue that I have missed?

Edit: after searching, I found this similar question: Getting result of a long running task with RabbitMQ

Are there any particular thoughts that people have about this?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-26T02:53:45+00:00Added an answer on May 26, 2026 at 2:53 am

    Use a “response” queue. I don’t know any specifics about RabbitMQ, so this is general:

    • Have your parent process send out requests and keep track of how many it sent
    • Make the parent process also wait on a specific response queue (that the children know about)
    • Whenever a child finishes something (or can’t finish for some reason), send a message to the response queue
    • Whenever numSent == numResponded, you’re done

    Something to keep in mind is a timeout — What happens if a child process dies? You have to do slightly more work, but basically:

    • With every sent message, include some sort of ID, and add that ID and the current time to a hash table.
    • For every response, remove that ID from the hash table
    • Periodically walk the hash table and remove anything that has timed out

    This is called the Request Reply Pattern.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have finished installing RabbitMQ using the following RPM http://www.rabbitmq.com/releases/rabbitmq-server/v2.7.1/rabbitmq-server-2.7.1-1.noarch.rpm i installed it like
I have a ruby script that creates a message using AMQP in RabbitMQ. #
Using TortoiseSVN against VisualSVN I delete a source file that I should not have
I'm using RabbitMQ on an EC2 instance and I have the Mnesia tables on
I have a Windows Service that retrieves messages from a RabbitMQ queue. The service
I have inherited a windows Python application that communicates with linux RabbitMQ. I need
I am using Django with Celery + RabbitMQ to create video conversion tasks of
I have a django project that uses a worker process that sends emails to
I am using RabbitMQ with Celery and I have set some custom routing settings
I tried installing rabbitmq using homebrew. I have a MBP i7 and it is

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.