Example #1
0
 public final function addJob($callback, $data = null)
 {
     $filename = libCrypt::getRandomHash() . '.nimdajob';
     $data = array('classname' => get_class($this), 'origin' => array('plugin' => $this->id, 'server' => $this->Server ? $this->Server->id : false, 'channel' => $this->Channel ? $this->Channel->id : false, 'user' => $this->User ? $this->User->id : false, 'command' => $this->command ? $this->command : false), 'callback' => $callback, 'plugin_path' => 'plugins/' . (libString::startsWith('CorePlugin', get_class($this)) ? 'core' : 'user') . '/' . get_class($this) . '.php', 'job_done_filename' => $this->Bot->getTempDir() . '/jobs_done/' . $filename, 'data' => $data);
     $filepath = $this->Bot->getTempDir() . '/jobs/' . $filename;
     file_put_contents($filepath, serialize($data));
     shell_exec('/usr/bin/php ./core/Job.php ' . escapeshellarg($filepath) . ' > /dev/null &');
     $this->Bot->jobCount++;
     if ($this->Bot->jobCount > $this->Bot->jobCountMax) {
         $this->Bot->jobCountMax = $this->Bot->jobCount;
     }
 }
Example #2
0
 private function createTempDir()
 {
     $this->tempDir = sys_get_temp_dir() . '/nimda-' . libCrypt::getRandomHash();
     mkdir($this->tempDir);
     chmod($this->tempDir, 0700);
     mkdir($this->tempDir . '/cache');
     mkdir($this->tempDir . '/jobs');
     mkdir($this->tempDir . '/jobs_done');
 }