gnu-social/scripts
Brion Vibber c7507e7e9d XMPP queued output & initial retooling of DB queue manager to support non-Notice objects.
Queue handlers for XMPP individual & firehose output now send their XML stanzas
to another output queue instead of connecting directly to the chat server. This
lets us have as many general processing threads as we need, while all actual
XMPP input and output go through a single daemon with a single connection open.

This avoids problems with multiple connected resources:
* multiple windows shown in some chat clients (psi, gajim, kopete)
* extra load on server
* incoming message delivery forwarding issues

Database changes:
* queue_item drops 'notice_id' in favor of a 'frame' blob.
  This is based on Craig Andrews' work branch to generalize queues to take any
  object, but conservatively leaving out the serialization for now.
  Table updater (preserves any existing queued items) in db/rc3to09.sql

Code changes to watch out for:
* Queue handlers should now define a handle() method instead of handle_notice()
* QueueDaemon and XmppDaemon now share common i/o (IoMaster) and respawning
  thread management (RespawningDaemon) infrastructure.
* The polling XmppConfirmManager has been dropped, as the message is queued
  directly when saving IM settings.
* Enable $config['queue']['debug_memory'] to output current memory usage at
  each run through the event loop to watch for memory leaks

To do:
* Adapt XMPP i/o to component connection mode for multi-site support.
* XMPP input can also be broken out to a queue, which would allow the actual
  notice save etc to be handled by general queue threads.
* Make sure there are no problems with simply pushing serialized Notice objects
  to queues.
* Find a way to improve interactive performance of the database-backed queue
  handler; polling is pretty painful to XMPP.
* Possibly redo the way QueueHandlers are injected into a QueueManager. The
  grouping used to split out the XMPP output queue is a bit awkward.

Conflicts:

	scripts/xmppdaemon.php
2010-01-22 12:52:36 -08:00
..
SearchMonkey-MrH.0.txt Updated URL patterns for identica Profiles for YahooSearchMonkey app. 2009-03-09 19:43:46 +00:00
SearchMonkey-Om3.0.txt Updated URL patterns for identica Profiles for YahooSearchMonkey app. 2009-03-09 19:43:46 +00:00
SearchMonkey-yQP.0.txt Updated URL patterns for identica Profiles for YahooSearchMonkey app. 2009-03-09 19:43:46 +00:00
allsites.php Revert "Open tags should have closing tags" 2009-10-08 11:41:39 -04:00
checkschema.php make checkschema.php executable (which makes sense, cause the README says to run it :-) ) 2009-11-30 17:00:00 -05:00
cleardb.sh clear and rebuild db scripts 2008-09-22 15:58:24 -04:00
commandline.inc define LACONICA for compatibility on scripts 2009-10-13 13:34:28 -04:00
console.php suppress notice for undefined prompt variable when console.php is used from non-interactive terminal 2010-01-06 13:08:56 -08:00
createsim.php free some memory in createsim.php 2010-01-04 22:49:09 -10:00
decache.php Revert "Open tags should have closing tags" 2009-10-08 11:41:39 -04:00
delete_status_network.sh global search and replace for laconica -> statusnet 2009-08-25 18:53:24 -04:00
deleteuser.php fix long options on deleteuser.php 2010-01-11 13:24:40 -08:00
fixup_conversations.php define LACONICA for compatibility on scripts 2009-10-13 13:34:28 -04:00
fixup_hashtags.php Revert "Open tags should have closing tags" 2009-10-08 11:41:39 -04:00
fixup_inboxes.php Revert "Open tags should have closing tags" 2009-10-08 11:41:39 -04:00
fixup_notices_rendered.php Revert "Open tags should have closing tags" 2009-10-08 11:41:39 -04:00
fixup_replies.php Revert "Open tags should have closing tags" 2009-10-08 11:41:39 -04:00
fixup_utf8.php Code style cleanup: dropped some unnecessary =& reference assignments where they're used only out of habit for PHP 4-style object semantics 2009-12-03 12:58:48 -08:00
getpiddir.php Revert "Open tags should have closing tags" 2009-10-08 11:41:39 -04:00
getvaliddaemons.php Major refactoring of queue handlers to support running multiple sites in one daemon. 2010-01-12 20:45:09 -08:00
handlequeued.php XMPP queued output & initial retooling of DB queue manager to support non-Notice objects. 2010-01-22 12:52:36 -08:00
initializeinbox.php actually use the user id instead of 0 ;) 2010-01-13 20:46:44 -08:00
maildaemon.php Add an IMAP daemon so StatusNet can process incoming user posts via catch-all mailbox (in addition to the pre-existing script alias method) 2010-01-08 18:52:43 -05:00
makegroupadmin.php Revert "* [Cc]an't -> [Cc]annot" 2009-11-08 23:28:51 +01:00
queuedaemon.php XMPP queued output & initial retooling of DB queue manager to support non-Notice objects. 2010-01-22 12:52:36 -08:00
rebuilddb.sh clear and rebuild db scripts 2008-09-22 15:58:24 -04:00
rebuilddb_psql.sh global search and replace for laconica -> statusnet 2009-08-25 18:53:24 -04:00
registeruser.php Revert "* [Cc]an't -> [Cc]annot" 2009-11-08 23:28:51 +01:00
reportsnapshot.php Revert "Open tags should have closing tags" 2009-10-08 11:41:39 -04:00
sessiongc.php Revert "Open tags should have closing tags" 2009-10-08 11:41:39 -04:00
setconfig.php add setconfig.php script to set configuration options 2009-12-24 15:13:30 -08:00
setpassword.php Revert "Open tags should have closing tags" 2009-10-08 11:41:39 -04:00
setup.cfg.sample use different name for connection and database 2009-06-23 11:22:54 -07:00
setup_status_network.sh Grand ALL permissions to the DB user when setting up a new status.net site. 2009-12-07 11:34:03 -08:00
showcache.php Revert "* [Cc]an't -> [Cc]annot" 2009-11-08 23:28:51 +01:00
showtable.php statusize schema-related modules 2009-09-23 09:20:04 -04:00
sitemap.php Revert "* [Cc]an't -> [Cc]annot" 2009-11-08 23:28:51 +01:00
startdaemons.sh have to provide full path for daemons 2009-09-21 14:42:20 -04:00
statusnet.spec last scrub of Laconica -> StatusNet 2009-08-26 03:33:43 -04:00
stopdaemons.sh Add an RSSCloud queue handler daemon 2010-01-05 23:19:13 -08:00
uncache_users.php Revert "Open tags should have closing tags" 2009-10-08 11:41:39 -04:00
update_po_templates.php Update generation of YAML files 2010-01-13 23:33:05 +01:00
update_translations.php Do not rebuild/add .mo files by default 2009-12-03 00:28:00 +01:00
updateavatarurl.php Tweak updateavatarurl.php: emit a newline whether we're on verbose or non-quiet, emit help when no users specified. 2009-12-08 08:30:30 -08:00
updatelocation.php Script to update the location ID for users 2009-12-31 12:38:58 -10:00
useremail.php Make useremail.php executable 2009-12-11 13:14:40 -08:00
userrole.php script for granting/revoking user roles 2009-11-07 22:35:35 -05:00
xmppdaemon.php XMPP queued output & initial retooling of DB queue manager to support non-Notice objects. 2010-01-22 12:52:36 -08:00