Commit Graph

622 Commits

Author SHA1 Message Date
Evan Prodromou
f246b8f2d7 cache noticesWithFriends in memcached
noticesWithFriends is turning out to be one of our most expensive
queries. The join is costly, and this method is hit over and over and
over by desktop clients and other API users.

So, I've added a first pass at caching the results. I store a "window"
of notices -- equal to the first 3 pages of notices, plus one for
pagination -- in the memcached cache. If with-friends notices are
requests, I fetch the whole window out of the cache and grab the slice
requested. If the requested notices are outside the window, we just do
the query. If there's nothing in the cache, we request the window and
store it, then return a slice.

I had to add a NoticeWrapper class that works like DB_DataObject
(well, just the fetch() part...) but just holds an array of notices
instead of a DB cursor.

Finally, saving a new notice blows away the caches for subscribed users.

darcs-hash:20080915065616-84dde-1b1e814c2294498a10b763b779cbb62c3f96aa84.gz
2008-09-15 02:56:16 -04:00
Evan Prodromou
ed57778b92 LOG_ERROR -> LOG_ERR
darcs-hash:20080913161107-84dde-30b694455d509a7ec2d12e8418f54ce695aa0993.gz
2008-09-13 12:11:07 -04:00
Evan Prodromou
a482123fea reverse order of queries for galleries
darcs-hash:20080911144742-84dde-235a1af2d958500b1f1c503f21785284ca4b5c8a.gz
2008-09-11 10:47:42 -04:00
Evan Prodromou
1374e0763e error checking in subscriptions
darcs-hash:20080908201020-84dde-233d38e3cb65f1778a34456193cd3f013e8d94a8.gz
2008-09-08 16:10:20 -04:00
Evan Prodromou
4af3393452 remove some debugging code from omb.php
darcs-hash:20080907200344-84dde-3cc68af343e2da1ae852df07bdc1738865c122f0.gz
2008-09-07 16:03:44 -04:00
Evan Prodromou
580c6ddc7b lots of debugging code in OMB send
darcs-hash:20080907195242-84dde-b2adc3cd10cfe516c4635d26830ed43b8151d6f0.gz
2008-09-07 15:52:42 -04:00
Evan Prodromou
c660a3438f debugging for omb
darcs-hash:20080907193402-84dde-cc5ecd5d02a00e3dfb7523f93d7f0a9ddbe6fb1b.gz
2008-09-07 15:34:02 -04:00
Evan Prodromou
f02b5bf7dd free memory in SMS daemon, too
darcs-hash:20080906015621-84dde-ae1a53e6757a743f82f3078947212b7bbe984dde.gz
2008-09-05 21:56:21 -04:00
Evan Prodromou
0c71340c9f free and unset DB_DataObjects after we're done with them
darcs-hash:20080906015501-84dde-e787962b9805759224389dd42a211dfa21da3473.gz
2008-09-05 21:55:01 -04:00
Evan Prodromou
96de63ea99 change sms broadcast to use a join
darcs-hash:20080905022019-84dde-d53b1dda2cd0ec996b8dda99a00d01e6da000d3f.gz
2008-09-04 22:20:19 -04:00
Evan Prodromou
d17cb8eedc use a join for omb broadcast
darcs-hash:20080905004701-84dde-c8b27c6b3b4ad634cd954ec51d45a92d2ad32389.gz
2008-09-04 20:47:01 -04:00
Evan Prodromou
f72b12c7b8 better @ links
darcs-hash:20080904224129-84dde-6844b29ab1818954aacaf6d9ef11371dbb11812a.gz
2008-09-04 18:41:29 -04:00
Evan Prodromou
be075ed642 add some processTime() to the send loops to avoid filling the buffer
darcs-hash:20080904213257-84dde-c046a708c6ac9f8f7ed2135f29241d70abe4104f.gz
2008-09-04 17:32:57 -04:00
Evan Prodromou
bd83350c89 abstract XMPP-related queue handling to a common superclass
darcs-hash:20080904194035-84dde-480b3605862d26eff6a2cac6eec02775628287e4.gz
2008-09-04 15:40:35 -04:00
Evan Prodromou
dfae116c47 add newline at the end of pidfile
darcs-hash:20080904191517-84dde-7bc5b62f26d10c7e865b483df90356a5eaea0205.gz
2008-09-04 15:15:17 -04:00
Evan Prodromou
32a189220c more robust code for setting daemon uid/gid
darcs-hash:20080904191031-84dde-bb457c429c76eedb9bd4ea838b7ccad28844effd.gz
2008-09-04 15:10:31 -04:00
Evan Prodromou
65efe17c4e add .pid to pidfile names
darcs-hash:20080904190254-84dde-57d24d7a82e4c7eabef87d60ebb69292832e31ac.gz
2008-09-04 15:02:54 -04:00
Evan Prodromou
aed0fff4ea scripts daemonize themselves
darcs-hash:20080904184031-84dde-eba2061f3aa898d0c791ffeb70837f759778c567.gz
2008-09-04 14:40:31 -04:00
CiaranG
fff677e6c4 Resolve remote subscribe and omb problems with quotes (Tickets #604 and #567)
darcs-hash:20080904065504-f6e2c-f0c770f52624e7151a93f2ed2b8813657ca88c14.gz
2008-09-04 02:55:04 -04:00
Garret Buell
51caab6e5e Elide_Tags
Make "#sanfrancisco", "#SanFrancisco", "#san_francisco", "#San.Francisco", and "#SAN-FRANCISCO" all link to http://identi.ca/tag/sanfrancisco but preserve appearance

darcs-hash:20080901025932-e3c0d-c0a939eaf7e242d88cbcb0d651c9d53718c60a9d.gz
2008-08-31 22:59:32 -04:00
Garret Buell
cca78b26f7 Allow_multicase_tags
Make "#test", "#Test", and "#tEsT" all preserve appearance but link to the same tag

darcs-hash:20080901001241-e3c0d-b466f35f4f023c6c90a6d2817487c97be9a1bbca.gz
2008-08-31 20:12:41 -04:00
Garret Buell
e333345722 Tags_without_fancy
Change common_tag_link to format the tag link based on the setting of $config['site']['fancy']

darcs-hash:20080831233401-e3c0d-4e0e43f5a53a6659c49d65a2b1f2a47c5cdec228.gz
2008-08-31 19:34:01 -04:00
Evan Prodromou
719470994a try to make the reply button do the right thing if there's no notification box.
darcs-hash:20080827015010-84dde-d5ed6a0a290273e400b71e4623a54ac88ee29173.gz
2008-08-26 21:50:10 -04:00
Evan Prodromou
d5f83d9252 switch around how XMLStream does processing
darcs-hash:20080831003210-84dde-92ccffd5b2e1d50963b18babd93c70fb1d20cdba.gz
2008-08-30 20:32:10 -04:00
Evan Prodromou
fa123bef67 restore HTML in output, remove rump pubsub event code
darcs-hash:20080902030403-84dde-5f1576104104ea57d3e23401b59493c03d5a84d4.gz
2008-09-01 23:04:03 -04:00
Evan Prodromou
ab92ba78ba slightly more robust connection code
darcs-hash:20080902030331-84dde-bb2db886d90623785f930bb7c5c3c406d407f808.gz
2008-09-01 23:03:31 -04:00
Evan Prodromou
c6c3cd40f6 separate out presence from connection, send different presence types from queuehandlers
darcs-hash:20080902012604-84dde-073a583da9b09c80e5e9a47a5eddd144fad8e87a.gz
2008-09-01 21:26:04 -04:00
Evan Prodromou
c31afa795f halt sending HTML in Jabber
darcs-hash:20080831114642-84dde-c1e486fe03752882e212bd6e3930477042f993be.gz
2008-08-31 07:46:42 -04:00
Evan Prodromou
c46f152697 forgot to use the array for avoiding dupes
darcs-hash:20080830094252-84dde-bf6c17d7036c84bfeaf41d2fc704cc8656a083c1.gz
2008-08-30 05:42:52 -04:00
Evan Prodromou
72d8bb12e1 use priority in connection
darcs-hash:20080830091522-84dde-75121e8794f2a43b8a4c5bff7ec42cac40d5520c.gz
2008-08-30 05:15:22 -04:00
Evan Prodromou
6c42bdc448 get rid of Laconica_XMPP and ignore priority
darcs-hash:20080830084423-84dde-7749d00c4c2fcada9e0f30af044637c48c0512c3.gz
2008-08-30 04:44:23 -04:00
evan
55816cf24e some fixes from on the jabber server
darcs-hash:20080830083502-5b646-d6a66157d86ca84cfa6cf6280bb2eb17bc20e02d.gz
2008-08-30 04:35:02 -04:00
Evan Prodromou
19147201c8 forgot to get the profile in public queue handler
darcs-hash:20080830071232-84dde-90bad1be7a7e141927175e42d39cb21d7bba337e.gz
2008-08-30 03:12:32 -04:00
Evan Prodromou
ac85a4b0fa less sleeping, slightly
darcs-hash:20080830064431-84dde-42629109de11f65da9d876aee168abdf7c4ced3d.gz
2008-08-30 02:44:31 -04:00
Evan Prodromou
439c14d986 use common log in error handler rather than echo
darcs-hash:20080830053052-84dde-279d1c52e9b8696079ba686009ce2d71725a690e.gz
2008-08-30 01:30:52 -04:00
Evan Prodromou
b17bb9861c lost $sent_to in jabber_public_notice
darcs-hash:20080829200859-84dde-d1c4c5897096a06dec8be14e81499d70a79c78d2.gz
2008-08-29 16:08:59 -04:00
Evan Prodromou
f5fe013657 many jabber queue management changes
Added a method to QueueManager to let subclasses do stuff when idle.
Needed so that XMPP queue manager can service its message queue.

Cleaned up jabber_broadcast_message quite a bit. Use custom joins
instead of loop-and-query, should fix some problems with users who are
getting messages even after turning off notification. Only build $msg
and $entry once, and use the XMPPHP function for messages with a
payload, rather than rolling our own.

darcs-hash:20080829200352-84dde-427e4ca8c81d4222a36f78e7c580b611ff0bf765.gz
2008-08-29 16:03:52 -04:00
Evan Prodromou
c4d6789275 split public stream to its own queue handler
Add another queue handler for the public stream. Should further
parallelize the work of sending out messages.

darcs-hash:20080829181702-84dde-594505aa73d2380b13bd98917b70b02bac597d12.gz
2008-08-29 14:17:02 -04:00
Evan Prodromou
f652418863 harmonize csrf and queues
darcs-hash:20080829174012-84dde-4859ce0a34a50080f8376fa3278c3aa3e3a3046d.gz
2008-08-29 13:40:12 -04:00
Evan Prodromou
241881238c misprint of omb as oms
darcs-hash:20080828012619-84dde-f7e993f345220d3642743e9f2567d7f8e6e4b6ce.gz
2008-08-27 21:26:19 -04:00
Evan Prodromou
9cdb33ac0e don't clear claims immediately
darcs-hash:20080828002610-84dde-d9cb46cb08ac50b8efbdf5683baeb2de168fc4b1.gz
2008-08-27 20:26:10 -04:00
Evan Prodromou
2be3be1c29 correct presence in jabber function
darcs-hash:20080828001936-84dde-e4ec2fef30c49d1254d5358624a4391930811832.gz
2008-08-27 20:19:36 -04:00
Evan Prodromou
7887147603 change return in queue function
darcs-hash:20080828001414-d018c-fa900f60f0af20c01e8b83a74834ddf46829f4b2.gz
2008-08-27 20:14:14 -04:00
Evan Prodromou
cd5dc3246e got two lines reversed
darcs-hash:20080827211940-84dde-d5b404023a2fb6b74b6255dd91910c9ec7df3cc6.gz
2008-08-27 17:19:40 -04:00
Evan Prodromou
b9f0ea6f0e break up monolithic xmppdaemon into multiple queue handlers
Eventually, the poor xmppdaemon has become overloaded with extra
tasks. So, I've broken it up. Now, we have 5 background scripts, and
more coming:

* xmppdaemon.php - handles incoming XMPP messages only.
* xmppqueuehandler.php - sends notices from the queue out through XMPP.
* smsqueuehandler.php - sends notices from the queue out over SMS
* ombqueuehandler.php - sends notices from the queue out over OMB
* xmppconfirmhandler.php - sends confirmation requests out over XMPP.

This is in addition to maildaemon.php, which takes incoming messages.

None of these are "true" daemons -- they don't daemonize themselves
automatically. Use nohup or another tool to background them. monit can
also be useful to keep them running.

At some point, these might become fork()'ing daemons, able to handle
more than one notice at a time. For now, I'm just running multiple
instances, hoping they don't interfere.

darcs-hash:20080827205407-84dde-97884a12f5f4e54c93bc785bd280683d1ee7e749.gz
2008-08-27 16:54:07 -04:00
Evan Prodromou
1df845db78 fix random function name
darcs-hash:20080829021854-84dde-818492a31c07dd0921c2a693095ca7ac901b6d35.gz
2008-08-28 22:18:54 -04:00
Evan Prodromou
54bee1b999 code for session token
darcs-hash:20080829015304-84dde-1c93203bdfbd4c1696cdd3c07212ff16a9f727dd.gz
2008-08-28 21:53:04 -04:00
Evan Prodromou
cf3902d8ac get language before setting it.
darcs-hash:20080828005323-84dde-8f69e1e6115faa544c22436539148dac53ed6f65.gz
2008-08-27 20:53:23 -04:00
Evan Prodromou
b1ff7d7a2b fix error storing uris of remote notices
darcs-hash:20080826211108-84dde-b277bdb1476b9cec0c0d93fa8d565c4642ba16c8.gz
2008-08-26 17:11:08 -04:00
Evan Prodromou
4a28e70cf8 use notice URI if it's not local and it's an HTTP URL
darcs-hash:20080826210314-84dde-34d4eb71c7d74b65c0c4b486f345ed7d9301af15.gz
2008-08-26 17:03:14 -04:00