Code Comments
Programming Forum and web based access to our favorite programming groups.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/
Post Follow-up to this message
hi Thomas --
an interesting use-case I hadn't considered! ;) The problem is that
when the queue is accessed in ordered mode, it's simply a lexical
sort by filename; and when accessed in unordered mode, it's simply
the OS-based ordering rather than in any way "random".
What about re-queueing the deferred jobs? ie.
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->enqueue_file($job->get_data_path());
}
$job->finish();
}
in other words, if a job is to be deferred, take it off the queue
and re-queue it under a new name.
Alternatively, I'd be happy to apply a patch that implements
a version of visit_all_jobs() which allows writes somehow, or
a way to access a job returned by visit_all_jobs() and render
it writable.
--j.
Thomas J Pinkl writes:
> 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/
Post Follow-up to this messageOn Mon, Mar 05, 2007 at 11:24:07AM +0000, Justin Mason wrote: > Alternatively, I'd be happy to apply a patch that implements > a version of visit_all_jobs() which allows writes somehow, or > a way to access a job returned by visit_all_jobs() and render > it writable. Justin, here's a patch which adds an optional "readonly" parameter to visit_all_jobs(). If the parameter isn't passed, then it defaults to true, thus maintaining backward compatibility. The patch includes changes to the POD as well. It's against the current SVN source. -- 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/
Post Follow-up to this messageOn Mon, Mar 05, 2007 at 11:28:03AM -0500, Thomas J Pinkl wrote: > Justin, here's a patch which adds an optional "readonly" parameter > to visit_all_jobs(). If the parameter isn't passed, then it defaults > to true, thus maintaining backward compatibility. The patch > includes changes to the POD as well. It's against the current SVN > source. Perhaps I whipped this up too quickly. The read-only flag works, as far as it goes, but jobs are not considered "active" when read-only is false. If I understand the code correctly, then I'll also have to do something to make the job "active" from within visit_all_jobs(). Is that correct? -- 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/
Post Follow-up to this messageCarmen Electra Giving A Head And Taking A Load! http://Carmen-Electra-Giving-A-Head.../> ovie=148803
Post Follow-up to this messageCutie teasing pusy with vibro then facking hard http://trully-bigtits.info/play.asp?bigtits218571
Post Follow-up to this messageHaCkeD aDuLT SiTe :) Direct access to member zone http://uniqueadult.com/members/video.php?file=1 username: 218571 password: wanttocome change the number in the link to get other videos! There are gigs of them!
Post Follow-up to this messageLindsay Lohan and Alyssa Milano , Petting Slits! http://www.WatchingTheTube.com/WatchTube?movie=1673286 best hot sex tranny video latina teen sex video clip free sex video voyeur black free planet sex video better clip sex video http://343-sex-video.info/porn-xxx-sex-video.html http://343-sex-video.info/teen-sex-video.html http://3 43-sex-video.info/f...-sex-video.html http://343-sex-video.info/gay-man-s...-sex-video.html
Post Follow-up to this messageBritney Spears and Lindsay Lohan , Petting Slits! http://www.WatchingTheTube.com/Watch?watch=1673286
Post Follow-up to this messageLindsay Lohan and Paula Abdul Become Lesbians! http://www.britneyraped.com/player.wmv?clip=1673286 Shania Twain and Helen Hunt At Pillow War Game! http://www.britneyraped.com/PlayMovie.mpeg?clip=1673286 Halle Berry and Jessica Simpson At Pillow War Game! http://www.britneyraped.com/watch?movie=1673286 Ashlee Simpson and Jessica Alba Lesbians Doing In Jacuzzi! http://www.britneyraped.com/WatchTube?id=1673286 Nikki Cox and Halle Berry Tormented By Cowgirls! http://www.britneyraped.com/Windows...v?movie=1673286 funny halo 2 video funny adult cartoon video funny dog video adult free funny video clip amazing funny video clip http://635-funny-video.info/funny-naruto-video.html http://635-funny-video.info/free-fu...deo-e-mail.html http://635-funny-video.info/crazy-funny-video-clip.html http://635-funny-video.info/funny-j...-video-web.html http://635-funny-video.info/funny-c...video-clip.html
Post Follow-up to this message
Show a Printable Version
Email This Page to Someone!
Receive updates to this thread
Powered by vBulletin
Copyright 2000-2006 Jelsoft Enterprises Limited.