Home  |  Linux  | Mysql  | PHP  | XML
From:Thomas J Pinkl Date:Sat Mar  3 09:37:00 2007
Subject:usage question
I'm attempting to use IPC::DirQueue 0.08 for a project where messages 
are queued for later processing.  However, when dequeuing these 
messages, it will be possible that a message cannot be processed 
immediately, but could be processed later. 

I thought I'd be able to use IPC::DirQueue like this: 

	my $dq = IPC::DirQueue->new( \%dq_opts );
	while (1) {
		my $job = $dq->pickup_queued_job();
		last if (! $job);

		my $rc = &process_job( $job );
		if ($rc) {
			$job->finish();
		} else {
			$job->return_to_queue();
		}
	}

But if, say, the first job is returned to the queue, then a subsequent 
call to pickup_queued_job() returns that same job.  Turning the loop 
above into an infinite loop (absent an external event which suddenly 
causes process_job() to return true). 

I've read through the IPC::DirQueue and IPC::DirQueue::Job pod pages, 
but I'm not seeing any way to iterate through the queue the way that I 
need.  The closest method I can see is visit_all_jobs(), but that only 
provides read-only Job objects.  I suppose I could play with the 
read-only flag within the callback function, but that doesn't seem 
right.

Does anyone have any suggestions?

-- 
Thomas J. Pinkl                     |  T: 215-442-9300
Senior Systems Architect            |     800-444-1427
Health Business Systems, Inc        |  F: 215-442-7555
An SXC Company                      |  
738 Louis Drive                     |  http://www.hbsrx.com/
Warminster, PA 18974                |  http://www.sxc.com/
Navigate in group perl.ipc.dirqueue at sever nntp.perl.org
Previous Next




  
© No Copyright
You are free to use Anything
Site Maintained by PHP Developer
Powered By PHP Consultants