code: public function run()
      {
          $task = $this->task;
          $task->start();
          if (!$this->isReady()) {
              $task->end();
  
              return false;
          }
          $action = $this->action;
          $this->settings = $action->config;
  
          if (in_array($this->settings['direction'], ['to_local', 'both'])) {
              // start foreign
              foreach ($this->foreignDataItems as $dataItem) {
                  $dataItem->handler->handle($task);
                  $this->clearCaches();
              }
          }
  
          if (in_array($this->settings['direction'], ['to_foreign', 'both'])) {
              // start local
              foreach ($this->localDataItems as $dataItem) {
                  $dataItem->handler->handle($task);
                  $this->clearCaches();
              }
          }
          $task->end();
  
          return true;
      }
docs: [[@doctodo method_description:run]].
  
  @return [[@doctodo return_type:run]] [[@doctodo return_description:run]]