public function set($controller, $data) {
		// save request to file with id
		$id = microtime(true) . '_' . uniqid('_', true) . '.mq';
		
		$item = [
			'id'			=> $id,
			'controller'	=> $controller,
			'data'			=> $data,
		];

		$id_file = $this->_save_path . $id;
		file_put_contents($id_file, json_encode($item));

		// trigger processing if worker is not running at the moment
		if (!is_file($this->_lockfile)) {
			// write lock file (we have to do this here and NOT in startworker because we could otherwise have more than one running worker)
			file_put_contents($this->_lockfile, '');

			$command = $this->_cli_path . ' ' . getcwd() . '/index.php' . ' ' . $controller . ' _morrow_messagequeue_startworker=true';
			$this->_execInBackground($command);
		}

		return $id;
	}