You are here

function sf_queue_process_queue in Salesforce Suite 7.2

Same name and namespace in other branches
  1. 6.2 sf_queue/sf_queue.module \sf_queue_process_queue()

@todo Please document this function.

See also

http://drupal.org/node/1354

2 calls to sf_queue_process_queue()
sf_queue_cron in sf_queue/sf_queue.module
Implements hook_cron().
sf_queue_process_queue_force in sf_queue/sf_queue.module
@todo Please document this function.

File

sf_queue/sf_queue.module, line 202
sf_queue.module Implements export queue and administrativa for Salesforce API

Code

function sf_queue_process_queue($settings, $state) {
  $duration = $settings['cron_period'];
  if ($duration > 0.5) {
    $duration = 0.5;
  }
  $limit = ini_get('max_execution_time') * $duration;
  $start_time = REQUEST_TIME;

  // Clean up the queue before we do any processing.
  // TODO Please review the conversion of this statement to the D7 database API syntax.

  /* db_query('DELETE FROM {salesforce_export_queue} WHERE sf_op IN ("delete", "update") AND (sfid IS NULL OR sfid = NULL OR sfid = "")') */
  db_delete('salesforce_export_queue')
    ->where('sf_op IN ("delete", "update") AND (sfid IS NULL OR sfid = NULL OR sfid = "")')
    ->execute();
  $settings = array_merge($settings, array(
    'start_time' => $start_time,
    'limit' => $limit,
  ));

  // Order of operations: delete, update, create
  if (in_array('delete', $settings['cron_operations'])) {
    sf_queue_handle_deletes($settings);
  }
  if (in_array('create', $settings['cron_operations']) || in_array('update', $settings['cron_operations'])) {
    sf_queue_handle_upserts($settings);
  }
}