git.gnu.io has moved to IP address 209.51.188.249 -- please double check where you are logging in.

  1. 14 Jan, 2016 1 commit
  2. 22 Jan, 2010 3 commits
  3. 13 Jan, 2010 1 commit
    • Brion Vibber's avatar
      Major refactoring of queue handlers to support running multiple sites in one daemon. · ec145b73
      Brion Vibber authored
      Key changes:
      * Initialization code moved from common.php to StatusNet class;
        can now switch configurations during runtime.
      * As a consequence, configuration files must now be idempotent...
        Be careful with constant, function or class definitions.
      * Control structure for daemons/QueueManager/QueueHandler has been refactored;
        the run loop is now managed by IoMaster run via scripts/queuedaemon.php
        IoManager subclasses are woken to handle socket input or polling, and may
        cover multiple sites.
      * Plugins can implement notice queue handlers more easily by registering a
        QueueHandler class; no more need to add a daemon.
      
      The new QueueDaemon runs from scripts/queuedaemon.php:
      
      * This replaces most of the old *handler.php scripts; they've been refactored
        to the bare handler classes.
      * Spawns multiple child processes to spread load; defaults to CPU count on
        Linux and Mac OS X systems, or override with --threads=N
      * When multithreaded, child processes are automatically respawned on failure.
      * Threads gracefully shut down and restart when passing a soft memory limit
        (defaults to 90% of memory_limit), limiting damage from memory leaks.
      * Support for UDP-based monitoring: http://www.gitorious.org/snqmon
      
      Rough control flow diagram:
      QueueDaemon -> IoMaster -> IoManager
                                 QueueManager [listen or poll] -> QueueHandler
                                 XmppManager [ping & keepalive]
                                 XmppConfirmManager [poll updates]
      
      Todo:
      
      * Respawning features not currently available running single-threaded.
      * When running single-site, configuration changes aren't picked up.
      * New sites or config changes affecting queue subscriptions are not yet
        handled without a daemon restart.
      * SNMP monitoring output to integrate with general tools (nagios, ganglia)
      * Convert XMPP confirmation message sends to use stomp queue instead of polling
      * Convert xmppdaemon.php to IoManager?
      * Convert Twitter status, friends import polling daemons to IoManager
      * Clean up some error reporting and failure modes
      * May need to adjust queue priorities for best perf in backlog/flood cases
      
      Detailed code history available in my daemon-work branch:
      http://www.gitorious.org/~brion/statusnet/brion-fixes/commits/daemon-work
      ec145b73
  4. 23 Oct, 2009 1 commit
    • Brion Vibber's avatar
      Fix three fatal errors when posting from 0.9.x: · b8987851
      Brion Vibber authored
      * OMB remote updates were trying to load nonexistent Laconica_OMB_Service_Consumer class -- fixed to StatusNet_OMB_Service_Consumer. Regression caused during libomb merge.
      * Twitter processing was still being queued from core when no twitter plugin was present, which triggered an exception from UnqueueHandler; leftover code from before the plugin extraction.
      * UnqueueHandler's exception caused a fatal error instead because it was missing the "new" keyword. Wouldn't have been seen when testing with the plugin enabled.
      b8987851
  5. 21 Oct, 2009 1 commit
  6. 20 Oct, 2009 1 commit
  7. 21 Sep, 2009 2 commits
  8. 25 Aug, 2009 3 commits
  9. 20 Aug, 2009 1 commit
  10. 10 Aug, 2009 1 commit
  11. 01 Jul, 2009 1 commit
    • Evan Prodromou's avatar
      Add UnQueueManager for immediate handling · e0bf8ad9
      Evan Prodromou authored
      Perhaps it's a little precious, but I took out the switches in
      util.php to determine what's supposed to be sent when, and made
      a queuemanager class that will just do things when they're supposed to
      be done.
      e0bf8ad9