Commit Graph

693 Commits

Author SHA1 Message Date
Evan Prodromou
e34ece8b06 Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-01-12 23:25:25 -08:00
Brion Vibber
ec145b73fc Major refactoring of queue handlers to support running multiple sites in one 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
2010-01-12 20:45:09 -08:00
Brion Vibber
9c34d5c107 Actually skip the pingback if XML-RPC extension is missing, instead of considering it then trying anyway and dying of a fatal error. :) 2010-01-12 12:12:31 -08:00
Evan Prodromou
7e5c15fa80 Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-01-11 16:23:48 -08:00
Evan Prodromou
04c76fc4e5 safer storage for diskcacheplugin 2010-01-11 16:23:34 -08:00
Brion Vibber
116c5f6839 dos -> unix line endings on CasAuthentication's CAS library 2010-01-11 15:42:17 -08:00
Evan Prodromou
bd6571c2e1 Merge branch 'diskcache' into 0.9.x 2010-01-11 15:34:27 -08:00
Sarven Capadisli
aaea2b1a96 Apparently, I can't spell my family name. 2010-01-11 13:02:04 +01:00
Evan Prodromou
8809e577b2 Merge branch 'sessionidparam' into 0.9.x
Conflicts:
	lib/command.php
2010-01-11 00:45:26 -08:00
Evan Prodromou
92deb35bc4 inject session before redirect for openid finish login 2010-01-11 08:40:41 +00:00
Craig Andrews
a07d8dab25 i18n in the imap plugin 2010-01-09 19:04:53 -05:00
Craig Andrews
c758b1b1d4 Add version information to a bunch of plugins 2010-01-09 19:04:53 -05:00
Craig Andrews
055f3fdddb 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
Evan Prodromou
e22af049a8 persistent connection flag, default false on cli 2010-01-08 13:21:29 -08:00
Sarven Capadisli
647bbb916c Updated RealtimePlugin to use core json2.js 2010-01-08 13:36:31 +00:00
Sarven Capadisli
ce761c7142 Updated plugin info for PoweredByStatusNet 2010-01-08 11:42:03 +00:00
Evan Prodromou
4f62d685d0 Mapstraction PluginVersion 2010-01-08 00:38:20 -08:00
Evan Prodromou
c57fe7fbf5 PluginVersion for WikiHashtags 2010-01-08 00:29:09 -08:00
Evan Prodromou
87043797bf Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-01-08 00:21:58 -08:00
Evan Prodromou
054aaa40bf add versions for url-shortener plugins 2010-01-08 00:20:38 -08:00
Zach Copley
20af83d316 Add version info for Facebook, TwitterBridge and RSSCloud plugins 2010-01-08 00:09:23 -08:00
Evan Prodromou
11b19788f5 add version information to GeoURL 2010-01-07 17:58:48 -08:00
Evan Prodromou
fe01a7d183 add version information to Linkback 2010-01-07 17:58:38 -08:00
Evan Prodromou
87c181b4e3 add version information to GoogleAnalytics 2010-01-07 17:51:57 -08:00
Evan Prodromou
ca3b2d614a add version information to MemcachePlugin 2010-01-07 17:49:39 -08:00
Evan Prodromou
6395ac71b8 add version information to PiwikAnalyticsPlugin 2010-01-07 17:47:23 -08:00
Evan Prodromou
afaefa6942 add version info to the Template plugin 2010-01-07 17:43:56 -08:00
Evan Prodromou
0587dcc045 add version info to OpenID plugin 2010-01-07 17:41:55 -08:00
Evan Prodromou
1c824a52ec Add version info to the CacheLog plugin 2010-01-07 17:39:15 -08:00
Evan Prodromou
42834944e0 add version info to SamplePlugin 2010-01-07 17:37:44 -08:00
Evan Prodromou
ff930d2555 add version information to Geonames plugin 2010-01-07 17:27:01 -08:00
Evan Prodromou
a55939f3b1 Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-01-06 23:23:30 -08:00
Evan Prodromou
e1c7851a06 pass through keys() as keyTypes() for UserFlag 2010-01-06 23:22:49 -08:00
Brion Vibber
4e2acd153b ...and drop the unnecessary &reference from child class pkeyGet() overrides. 2010-01-06 14:28:40 -08:00
Craig Andrews
20144285ca The structure return by parse_url is an associative array, not an object. 2010-01-06 17:13:09 -05:00
Craig Andrews
208bab32b7 Remove erroneous call to parent::onInitializePlugin() 2010-01-06 16:48:52 -05:00
Brion Vibber
b93244395f Fix for broken profile flag admin UI: delete stray flag entries when users are deleted so broken entries don't litter the lookups.
* added ProfileDeleteRelated event to match UserDeleteRelated, to allow plugins to add extra related tables on profile deletion
* UserFlagPlugin: deleting flags when target profile is deleted
* UserFlagPlugin: deleting flags when flagging user is deleted
* UserFlagPlugin: fix for autoloader -- class names are case-insensitive. We may get lowercase class names coming in at times, such as when creating DB objects programatically from a table name.

Note that any already-existing bogus entries need to be removed from the database:
select * from user_flag_profile where (select id from profile where id=profile_id) is null;
select * from user_flag_profile where (select id from user where id=user_id) is null;
2010-01-06 11:10:33 -08:00
Sarven Capadisli
d7e2a29498 Removed unnecessary internal style 2010-01-06 11:31:06 +01:00
Zach Copley
c95114ea02 Some better log msgs 2010-01-06 07:44:34 +00:00
Zach Copley
fd33865258 Fix subscription path in link element 2010-01-05 23:21:57 -08:00
Zach Copley
3e6b80d3e9 Some phpcs cleanup 2010-01-05 23:21:57 -08:00
Zach Copley
655dbcedb3 Comment out the LoggingAggregator business 2010-01-05 23:21:57 -08:00
Zach Copley
aad54af448 Reject subscription requests for handlers that don't support http-post 2010-01-05 23:21:46 -08:00
Zach Copley
48af79dbb4 Added a bunch of function commment blocks 2010-01-05 23:19:13 -08:00
Zach Copley
c571c1323f Added intial README 2010-01-05 23:19:13 -08:00
Zach Copley
ff26b8d88b Add an RSSCloud queue handler daemon 2010-01-05 23:19:13 -08:00
Zach Copley
d091d06115 Notifier works, and bad subscriptions are deleted properly now. 2010-01-05 23:19:13 -08:00
Zach Copley
61804bb7bb Plugin now checks notify handlers before registering subscriptions 2010-01-05 23:19:13 -08:00
Zach Copley
4e07d9eeec Better .ini info for RSSCloud subscription 2010-01-05 23:18:58 -08:00
Zach Copley
6b28fbe7b6 Make dummy aggregator handle RSSCloud challenge/response with domain parameter 2010-01-05 23:17:35 -08:00