You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by Apache Wiki <wi...@apache.org> on 2009/03/11 09:24:01 UTC
[Couchdb Wiki] Update of "Regenerating views on update" by PaulCarey
Dear Wiki user,
You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for change notification.
The following page has been changed by PaulCarey:
http://wiki.apache.org/couchdb/Regenerating_views_on_update
The comment on the change is:
Updated for trunk
------------------------------------------------------------------------------
DbUpdateNotificationProcess=/PATH/TO/view_updater.rb
}}}
- (0.9) Add the following section to the couch.ini file: {{{
+ (0.9) Add the following section to the local.ini file: {{{
[update_notification]
view_updater=/PATH/TO/view_updater.rb
}}}
=== view_updater.rb ===
- The following script updates the views for each tenth update made to the database or at most once every second when a lot of saves are performed {{{
+ The following script updates the views for each tenth update made to the database or at most once every second when a lot of saves are performed
+
+ {{{
+
#!/usr/bin/ruby
###################
@@ -26, +29 @@
###################
# The smallest amount of changed documents before the views are updated
- MIN_NUM_OF_CHANGED_DOCS = 10
+ MIN_NUM_OF_CHANGED_DOCS = 1
# URL to the DB on the CouchDB server
URL = "http://localhost:5984"
@@ -36, +39 @@
# One entry for each design document
# in each database
+ VIEWS = {"my_db" => {"design_doc" => "view_name"}}
- VIEWS = {"DATABASE_NAME" => ["list_of/design_documents",
- "another/design_document"],
- "recipes" => ["category/most_popular"],
- "ingredients" => ["by/price"]}
-
###################
# RUNTIME #
@@ -64, +63 @@
# If there are views in the database, get them
if VIEWS[db_name]
- VIEWS[db_name].each do |view|
+ VIEWS[db_name].each do |design, view|
- `curl #{URL}/#{db_name}/_view/#{view}?count=0`
+ `curl #{URL}/#{db_name}/_design/#{design}/_view/#{view}?limit=0`
end
end
@@ -84, +83 @@
while run do
- puts "Waiting for input:"
+ STDERR << "Waiting for input\n"
update_call = gets
# When CouchDB exits the script gets called with