in reply to Managing a web form submission work queue

Considering you want locking in your queue (so that only one worker can get assigned a piece of work, even if there are two processes trying to assign something), I strongly recommend that you use a database for the queue.

A way ensure that, even if the database doesn't allow atomic operations is to have a field (call it lock (int)) in your row. When you want to select that row, do a

update table set lock=$$ where id=foo and lock=0
Then you select that row, and examine the lock. If it is $$, then your process has the lock. If it is something else, another process swooped in at the last moment, and it has the lock. If it is 0, then you have a serius problem :-).