Browse Source

:wrench: add laravel scheduler timer support

Jeremy Zheng 2 years ago
parent
commit
6ca643193f

+ 25 - 16
deploy/roles/mint-v2/tasks/laravel.yml

@@ -61,15 +61,6 @@
     group: www-data
     recurse: yes
 
-- name: setup tmp folder for v1
-  become: true
-  ansible.builtin.file:
-    path: "{{ app_deploy_root }}/htdocs/public/tmp"
-    state: directory
-    owner: www-data
-    group: www-data
-    recurse: yes
-
 - name: auto-loader optimization for v2
   ansible.builtin.shell:
     cmd: composer install --optimize-autoloader --no-dev
@@ -104,17 +95,35 @@
     cmd: su www-data -pc "php artisan view:cache"
     chdir: "{{ app_deploy_root }}/htdocs"
 
-- name: create tmp folder for v1
+# https://laravel.com/docs/10.x/scheduling#running-the-scheduler
+- name: upload scheduler service
   become: true
-  ansible.builtin.file:
-    path: "{{ app_deploy_root }}/htdocs/public/tmp"
-    state: directory
-    owner: "www-data"
-    group: "www-data"
+  template:
+    src: v2/scheduler.service.j2
+    dest: /usr/lib/systemd/system/mint-{{ app_deploy_env }}-scheduler.service
+    owner: root
+    group: root
+    mode: "0644"
+
+- name: upload scheduler timer
+  become: true
+  template:
+    src: v2/scheduler.timer.j2
+    dest: /usr/lib/systemd/system/mint-{{ app_deploy_env }}-scheduler.timer
+    owner: root
+    group: root
+    mode: "0644"
+
+# FIXME may be have async bugs
+- name: run db:migrate
+  become: true
+  ansible.builtin.shell:
+    cmd: su www-data -pc "php artisan migrate"
+    chdir: "{{ app_deploy_root }}/htdocs"
 
 - name: setup sqlite3 db for v1
   become: true
   ansible.builtin.file:
     src: /var/www/shared/appdata
-    dest: "{{ app_deploy_root }}/htdocs/public/tmp/appdata"
+    dest: "{{ app_deploy_root }}/htdocs/storage/app/data"
     state: link

+ 1 - 0
deploy/roles/mint-v2/templates/v1/config.php.j2

@@ -6,6 +6,7 @@ define("ASSETS_SERVER","{{ app_assets_server }}");
 define("DOCUMENTS_SERVER","{{ app_documents_server }}");
 define('APP_KEY','{{ app_secret_key }}');
 define('APP_ENV','{{ app_deploy_env }}');
+define('CORS_ALLOWED_ORIGINS', '{{ app_cors_allowed_origins }}');
 /*
 电子邮件设置
 PHPMailer

+ 1 - 0
deploy/roles/mint-v2/templates/v2/env.j2

@@ -66,6 +66,7 @@ MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
 ASSETS_SERVER="{{ app_assets_server }}"
 RPC_SERVER="{{ app_rpc_server }}"
 DOCUMENTS_SERVER="{{ app_documents_server }}"
+CORS_ALLOWED_ORIGINS="{{ app_cors_allowed_origins }}"
 
 SNOWFLAKE_DATA_CENTER_ID={{ app_snowflake_data_center_id }}
 SNOWFLAKE_WORKER_ID={{ app_snowflake_worker_id }}

+ 8 - 0
deploy/roles/mint-v2/templates/v2/scheduler.service.j2

@@ -0,0 +1,8 @@
+[Unit]
+Description=Mint scheduler for {{ app_deploy_env }}
+
+[Service]
+Type=simple
+User=www-data
+Group=www-data
+ExecStart=cd {{ app_deploy_root }}/htdocs && /usr/bin/php artisan schedule:run >> {{ app_deploy_root }}/logs/scheduler.log 2>&1

+ 9 - 0
deploy/roles/mint-v2/templates/v2/scheduler.timer.j2

@@ -0,0 +1,9 @@
+[Unit]
+Description=Runs Mint mint-{{ app_deploy_env }} scheduler every minute
+
+[Timer]
+OnUnitActiveSec=1minute
+Unit=mint-{{ app_deploy_env }}-scheduler.service
+
+[Install]
+WantedBy=multi-user.target

+ 15 - 0
deploy/scripts/postgresql/2023-10-21-global-fts-setup.sql

@@ -0,0 +1,15 @@
+-- FROM https://github.com/iapt-platform/mint/blob/laravel/database/migrations/2021_12_30_053602_add_func_to_fts_texts_table.php
+
+CREATE TEXT SEARCH CONFIGURATION pali ( parser = pg_catalog.default );
+CREATE TEXT SEARCH CONFIGURATION pali_unaccent ( parser = pg_catalog.default );
+CREATE TEXT SEARCH DICTIONARY pali_stem ( TEMPLATE = synonym, SYNONYMS = pali );
+CREATE TEXT SEARCH DICTIONARY pali_stopwords ( TEMPLATE = pg_catalog.simple, STOPWORDS = pali, ACCEPT = true);
+
+ALTER TEXT SEARCH CONFIGURATION pali
+ADD MAPPING FOR asciiword, word, hword_part, hword_asciipart
+WITH pali_stem, pali_stopwords;
+
+CREATE EXTENSION IF NOT EXISTS "unaccent";
+ALTER TEXT SEARCH CONFIGURATION pali_unaccent
+ADD MAPPING FOR asciiword, word, hword_part, hword_asciipart
+WITH unaccent, pali_stem, pali_stopwords;