+function poller_too_much_workers() {
+
+ if(function_exists('sys_getloadavg')) {
+ $load = sys_getloadavg();
+
+ // To-Do
+ if ($load < 1)
+ $queues = 10;
+ elseif ($load < 5)
+ $queues = 4;
+ elseif ($load < 10)
+ $queues = 2;
+ else
+ $queues = 1;
+
+ } else {
+ $queues = intval(get_config("system", "worker_queues"));
+
+ if ($queues == 0)
+ $queues = 4;
+ }
+
+ if (poller_active_workers() >= $queues)
+ return;
+}
+
+function poller_active_workers() {
+ $workers = q("SELECT COUNT(*) AS `workers` FROM `workerqueue` WHERE `executed` != '0000-00-00 00:00:00'");
+
+ return($workers[0]["workers"]);
+}
+