Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
daemon.
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
|
|
no $user->timezone :)
Trying to get property of non-object (/srv/com.leuksman.status/lib/api.php:171)
|
|
|
|
(function_exists returns false even though it exists and cannot be redefined)
|
|
|
|
|
|
|
|
|
|
|
|
Conflicts:
lib/command.php
|
|
|
|
|
|
|
|
|
|
|
|
Conflicts:
classes/Memcached_DataObject.php
|
|
|
|
|
|
|
|
|
|
|
|
* Mostly punctuation updates so that the same message is used consistently in all of StatusNet.
* Some cases of "Title Case" removed, because that does not appear to be used consistently.
|
|
|
|
* i18n updates: number parameters if more than one are being used
|
|
|
|
|
|
catch-all mailbox (in addition to the pre-existing script alias method)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
timeline and public xmpp feed
|
|
nobody likes being told what they can't do!"
This reverts commit 5d9a2eb17e3f6e3bc73b5aa80625a365761b6689.
These are commands that are/were implemented by Twitter, and we don't
(yet) implemented. People will be looking for that information.
|
|
being told what they can't do!
Also broke up the localized help message into line-by-line pieces to ease translation maintenance.
|
|
|
|
|
|
|
|
CURRENT_TIMESTAMP').
|
|
* We now cache negative lookups; clear them in Memcached_DataObject->insert()
* Mark file.url as a unique key in statusnet.ini so its negative lookups are cleared properly (first save of a notice with a new URL was failing due to double-insert)
* Now using serialization for default in-process cache instead of just saving objects; avoids potential corruption if you save an object to cache, change the original object, then fetch the same key from cache again
|
|
Thank you jeff-themovie for this implementation!
|
|
of as plugins.
This move makes sense as you can addPlugin('Authentication') for example - these are abstract classes designed to be implemented, not used directly.
|