=== modified file 'sites/all/modules/job_queue/job_queue.install'
--- sites/all/modules/job_queue/job_queue.install	2008-01-10 04:54:06 +0000
+++ sites/all/modules/job_queue/job_queue.install	2008-01-10 05:17:40 +0000
@@ -11,12 +11,23 @@
         function varchar(255) NOT NULL,
         arguments text NOT NULL,
         file varchar(255) NOT NULL,
-        PRIMARY KEY (jqid)
+        queue int NOT NULL DEFAULT 0,
+        PRIMARY KEY (jqid),
+        KEY(queue)
       )');
       break;
   }
 }
 
+function job_queue_uninstall() {
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      db_query('DROP TABLE {job_queue}');
+      break;
+  }
+}
+
 function job_queue_update_1() {
   $return = array();
 
@@ -29,3 +40,16 @@
 
   return $return;
 }
+
+function job_queue_update_2() {
+  $return = array();
+
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $return[] = update_sql('ALTER TABLE {job_queue} ADD queue int NOT NULL DEFAULT 0');
+      break;
+  }
+
+  return $return;
+}

=== modified file 'sites/all/modules/job_queue/job_queue.module'
--- sites/all/modules/job_queue/job_queue.module	2008-01-10 04:54:06 +0000
+++ sites/all/modules/job_queue/job_queue.module	2008-01-10 05:16:09 +0000
@@ -44,9 +44,10 @@
  * @param $description A human-readable description of the queued job.
  * @param $arguments Optional array of arguments to pass to the function.
  * @param $file Optional file path which needs to be included for $fucntion.
+ * @param $queue Optional numeric queue identifer.
  */
-function job_queue_add($function, $description, $arguments = array(), $file = '') {
-  db_query("INSERT INTO {job_queue} (jqid, created, description, function, arguments, file) VALUES (%d, %d, '%s', '%s', '%s', '%s')", db_next_id('{job_queue}_jqid'), time(), $description, $function, serialize($arguments), $file);
+function job_queue_add($function, $description, $arguments = array(), $file = '', $queue = 0) {
+  db_query("INSERT INTO {job_queue} (jqid, created, description, function, arguments, file, queue) VALUES (%d, %d, '%s', '%s', '%s', '%s', %d)", db_next_id('{job_queue}_jqid'), time(), $description, $function, serialize($arguments), $file, $queue);
 }
 
 /**
@@ -55,8 +56,8 @@
  * @return TRUE if a job was dequeued, reguardless of success or failure
  *   executing. FALSE if the queue was empty.
  */
-function job_queue_dequeue() {
-  $result = db_query_range('SELECT jqid, description, function, arguments, file FROM {job_queue} ORDER BY jqid', 0, 1);
+function job_queue_dequeue($queue = 0) {
+  $result = db_query_range('SELECT jqid, description, function, arguments, file FROM {job_queue} WHERE queue = %d ORDER BY jqid', $queue,  0, 1);
   if (db_num_rows($result) ==  0) {
     return FALSE;   
   }


