From 5218b9940ec3638b809eb01e450ed742a2c3eb73 Mon Sep 17 00:00:00 2001 From: Stefan Verhoeven Date: Tue, 1 Aug 2017 22:07:30 +0200 Subject: [PATCH] Enabled sync tables for all users + periodically trigger sync tables task Refs #11 --- Dockerfile | 8 +++++++- create_dev_user | 3 +++ setup_organization.sh | 3 +++ startup.sh | 1 + sync_tables_trigger.sh | 8 ++++++++ 5 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 sync_tables_trigger.sh diff --git a/Dockerfile b/Dockerfile index 6afcaf1..2d5c10e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -221,6 +221,7 @@ ADD ./config/varnish.vcl /etc/varnish.vcl ADD ./geocoder.sh /cartodb/script/geocoder.sh ADD ./geocoder_server.sql /cartodb/script/geocoder_server.sql ADD ./fill_geocoder.sh /cartodb/script/fill_geocoder.sh +ADD ./sync_tables_trigger.sh /cartodb/script/sync_tables_trigger.sh ENV PATH /usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin RUN mkdir -p /cartodb/log && touch /cartodb/log/users_modifications && \ /opt/varnish/sbin/varnishd -a :6081 -T localhost:6082 -s malloc,256m -f /etc/varnish.vcl && \ @@ -228,12 +229,17 @@ RUN mkdir -p /cartodb/log && touch /cartodb/log/users_modifications && \ bash -l -c "cd /cartodb && bash script/create_dev_user && \ bash script/setup_organization.sh && bash script/geocoder.sh" && \ service postgresql stop && service redis-server stop && \ - chmod +x /cartodb/script/fill_geocoder.sh + chmod +x /cartodb/script/fill_geocoder.sh && \ + chmod +x /cartodb/script/sync_tables_trigger.sh EXPOSE 80 ENV GDAL_DATA /usr/share/gdal/1.11 +# Number of seconds between a sync tables task is run +# Default interval is an hour, use `docker run -e SYNC_TABLES_INTERVAL=60 ...` to change it +ENV SYNC_TABLES_INTERVAL 3600 + ADD ./startup.sh /opt/startup.sh CMD ["/bin/bash", "/opt/startup.sh"] diff --git a/create_dev_user b/create_dev_user index 1ea574a..9cbb501 100755 --- a/create_dev_user +++ b/create_dev_user @@ -33,3 +33,6 @@ rake cartodb:db:set_user_account_type["${SUBDOMAIN}",'[DEDICATED]'] # Set dataservices server rake cartodb:db:configure_geocoder_extension_for_non_org_users[$SUBDOMAIN] + +# Enable sync tables +echo "UPDATE users SET sync_tables_enabled=true WHERE username='${SUBDOMAIN}'" | psql -U postgres -t carto_db_development diff --git a/setup_organization.sh b/setup_organization.sh index 1f1f0c4..a5bb718 100644 --- a/setup_organization.sh +++ b/setup_organization.sh @@ -8,3 +8,6 @@ rake cartodb:db:set_unlimited_table_quota["${USERNAME}"] rake cartodb:db:create_new_organization_with_owner ORGANIZATION_NAME="${ORGANIZATION_NAME}" USERNAME="${USERNAME}" ORGANIZATION_SEATS=100 ORGANIZATION_QUOTA=102400 ORGANIZATION_DISPLAY_NAME="${ORGANIZATION_NAME}" rake cartodb:db:set_organization_quota[$ORGANIZATION_NAME,5000] rake cartodb:db:configure_geocoder_extension_for_organizations[$ORGANIZATION_NAME] + +# Enable sync tables +echo "UPDATE users SET sync_tables_enabled=true WHERE username='${USERNAME}'" | psql -U postgres -t carto_db_development diff --git a/startup.sh b/startup.sh index 19c5f62..ce10c75 100755 --- a/startup.sh +++ b/startup.sh @@ -17,4 +17,5 @@ cd /cartodb source /usr/local/rvm/scripts/rvm bundle exec script/restore_redis bundle exec script/resque > resque.log 2>&1 & +script/sync_tables_trigger.sh & bundle exec thin start --threaded -p 3000 --threadpool-size 5 diff --git a/sync_tables_trigger.sh b/sync_tables_trigger.sh new file mode 100644 index 0000000..8c01fc5 --- /dev/null +++ b/sync_tables_trigger.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +while : +do +sleep $SYNC_TABLES_INTERVAL +cd /cartodb +bundle exec rake cartodb:sync_tables[true] +done