summaryrefslogtreecommitdiff
path: root/tools/worker.php
diff options
context:
space:
mode:
authorczaks <marcin@6irc.net>2016-05-08 13:20:00 +0200
committerczaks <marcin@6irc.net>2016-05-08 13:23:41 +0200
commit12e6aba5d4a2965591b3df76e4f6c19e35475700 (patch)
treeee38c5ac853427ac7af904f5631e755a081c7d90 /tools/worker.php
parente2653754750917035b79e62b07d286b3a56cf9ca (diff)
(2/2) advanced build. implement a daemon that will build static pages.
implement a queue and a lock. fix notice in bans. and it even works! the daemon is basic right now, it could work in a mode that it will defer building certain pages until a certain time.
Diffstat (limited to 'tools/worker.php')
-rwxr-xr-xtools/worker.php31
1 files changed, 31 insertions, 0 deletions
diff --git a/tools/worker.php b/tools/worker.php
new file mode 100755
index 00000000..e19fe1c6
--- /dev/null
+++ b/tools/worker.php
@@ -0,0 +1,31 @@
+#!/usr/bin/php
+<?php
+/* worker.php - part of advanced build vichan feature */
+
+require dirname(__FILE__) . '/inc/cli.php';
+require_once 'inc/controller.php';
+
+$config['smart_build'] = false; // Let's disable it, so we can build the page for real
+$config['generation_strategies'] = array('strategy_immediate');
+
+function after_open_board() { global $config;
+ $config['smart_build'] = false;
+ $config['generation_strategies'] = array('strategy_immediate');
+};
+
+echo "Hello world!\n";
+
+$queue = get_queue('generate');
+
+while (true) {
+ $q = $queue->pop(2);
+ foreach ($q as $v) {
+ list($__, $func, $ary, $action) = unserialize($v);
+ echo "Starting to generate $func ".implode(" ", $ary)."... ";
+
+ call_user_func_array($func, $ary);
+
+ echo "done!\n";
+ }
+ if (!$q) usleep(20000); // 0.02s
+}