Jetpack_Sync_Settings::update_settings PHP Method

update_settings() static public method

static public update_settings ( $new_settings )
    static function update_settings($new_settings)
    {
        $validated_settings = array_intersect_key($new_settings, self::$valid_settings);
        foreach ($validated_settings as $setting => $value) {
            update_option(self::SETTINGS_OPTION_PREFIX . $setting, $value, true);
            unset(self::$settings_cache[$setting]);
            // if we set the disabled option to true, clear the queues
            if ('disable' === $setting && !!$value) {
                require_once dirname(__FILE__) . '/class.jetpack-sync-listener.php';
                $listener = Jetpack_Sync_Listener::get_instance();
                $listener->get_sync_queue()->reset();
                $listener->get_full_sync_queue()->reset();
            }
        }
    }

Usage Example

 function test_detects_if_exceeded_queue_size_limit_and_oldest_item_gt_15_mins()
 {
     $this->listener->get_sync_queue()->reset();
     // first, let's try overriding the default queue limit
     $this->assertEquals(Jetpack_Sync_Defaults::$default_max_queue_size, $this->listener->get_queue_size_limit());
     $this->assertEquals(Jetpack_Sync_Defaults::$default_max_queue_lag, $this->listener->get_queue_lag_limit());
     // set max queue size to 2 items
     Jetpack_Sync_Settings::update_settings(array('max_queue_size' => 2));
     // set max queue age to 3 seconds
     Jetpack_Sync_Settings::update_settings(array('max_queue_lag' => 3));
     $this->listener->set_defaults();
     // should pick up new queue size limit
     $this->assertEquals(2, $this->listener->get_queue_size_limit());
     $this->assertEquals(3, $this->listener->get_queue_lag_limit());
     $this->assertEquals(0, $this->listener->get_sync_queue()->size());
     // now let's try exceeding the new limit
     add_action('my_action', array($this->listener, 'action_handler'));
     $this->listener->force_recheck_queue_limit();
     do_action('my_action');
     $this->assertEquals(1, $this->listener->get_sync_queue()->size());
     $this->listener->force_recheck_queue_limit();
     do_action('my_action');
     $this->assertEquals(2, $this->listener->get_sync_queue()->size());
     $this->listener->force_recheck_queue_limit();
     do_action('my_action');
     $this->assertEquals(3, $this->listener->get_sync_queue()->size());
     // sleep for 3 seconds, so the oldest item in the queue is at least 3 seconds old -
     // now our queue limit should kick in
     sleep(3);
     $this->listener->force_recheck_queue_limit();
     do_action('my_action');
     $this->assertEquals(3, $this->listener->get_sync_queue()->size());
     remove_action('my_action', array($this->listener, 'action_handler'));
 }
All Usage Examples Of Jetpack_Sync_Settings::update_settings