これは難しいことではありません。ジョブが入力されるたびにソートできるタイムスタンプを含めるだけです。データベースによっては、このフィールドに現在のタイムスタンプを自動入力できます。
ジョブをフェッチするときは、SELECT および DELETE ステートメントをトランザクションに入れるのと同じくらい簡単です。不快に感じる場合は、次のようにするとよいでしょう。
UPDATE tblQueue SET mark = <unique application id> WHERE mark IS NULL ORDER BY timestamp ASC LIMIT 1
SELECT * FROM tblQueue WHERE mark = <unique app id>
DELETE FROM tblQueue WHERE mark = <unique app id>
この設定を使用することで、トランザクションが怖がっている場合でもトランザクションを回避できます。
バッチの定義はやや不明確です。一度に 10 個のアイテムを処理できる必要があるというだけの場合は、最初のクエリの LIMIT 1 句を LIMIT 10 に変更してください。
ジョブをグループ化できるという意味であれば、おそらくジョブ キューが必要であり、サブアイテムを別のテーブル (キューではなく、ジョブ アイテムを指す外部キーを持つ通常のテーブル) に配置する必要があります。