Skip to content

Commit 94c69b3

Browse files
tyler36rfay
andauthored
Use "web_extra_daemons" (#11)
* Use "web_extra_daemons" Fixes #10 * clear up install file * Update README * Add DDEV constraint Co-authored-by: Randy Fay <randy@randyfay.com> * Handle "queue exiting doesn't end up with no runner" Co-authored-by: Randy Fay <randy@randyfay.com> * try different "while" loop * disable "install from release", temporarily * Remove older files * hide grep "post-install" message --------- Co-authored-by: tyler36 <7234392+tyler36@users.noreply.github.com> Co-authored-by: Randy Fay <randy@randyfay.com>
1 parent 6260f51 commit 94c69b3

File tree

6 files changed

+56
-41
lines changed

6 files changed

+56
-41
lines changed

README.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,6 @@ ddev restart
2424
## What does this add-on do and add?
2525

2626
1. Checks to make sure the DDEV version is adequate.
27-
2. Adds `.ddev/web-build/laravel-worker.conf`, which configures the queue worker.
28-
3. Adds `.ddev/web-build/Dockerfile.ddev-laravel-worker`, which adds the worker to supervisor.
29-
30-
See [Configuring Supervisor](https://laravel.com/docs/master/queues#configuring-supervisor) for the latest recommended settings.
27+
2. Adds `.ddev/config.laravel-workers.yaml`, which starts the queue worker daemon.
3128

3229
**Contributed and maintained by [tyler36](https://github.com/tyler36)**

config.laravel-workers.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#ddev-generated
2+
3+
ddev_version_constraint: '>=v1.23.0'
4+
web_extra_daemons:
5+
- name: "queue-1"
6+
command: 'while true; do /usr/bin/php /var/www/html/artisan queue:work --sleep=3 --tries=3; sleep 1; done'
7+
directory: /var/www/html

install.yaml

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,10 @@
11
name: ddev-laravel-queue
22

3-
# pre_install_actions - list of actions to run before installing the addon.
4-
# Examples would be removing an extraneous docker volume,
5-
# or doing a sanity check for requirements.
6-
pre_install_actions:
7-
# - 'if [ "$(arch)" = "arm64" -o "$(arch)" = "aarch64" ]; then echo "This package does not work on arm64 machines"; exit 1; fi'
8-
# - "docker volume rm ddev-${DDEV_PROJECT}_solr 2>/dev/null || true"
9-
103
# list of files and directories listed that are copied into project .ddev directory
114
project_files:
12-
- web-build/Dockerfile.ddev-laravel-worker
13-
- web-build/laravel-worker.conf
14-
15-
16-
# List of files and directories that are copied into the global .ddev directory
17-
global_files:
18-
5+
- config.laravel-workers.yaml
196

207
post_install_actions:
21-
8+
# - echo 'Check if there are any < 1.0 release files and remove them.'
9+
- if grep "#ddev-generated" web-build/Dockerfile.ddev-laravel-worker 2>/dev/null; then rm web-build/Dockerfile.ddev-laravel-worker; fi
10+
- if grep "#ddev-generated" web-build/laravel-worker.conf 2>/dev/null; then rm web-build/laravel-worker.conf; fi

tests/test.bats

Lines changed: 44 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -49,16 +49,16 @@ teardown() {
4949
health_checks
5050
}
5151

52-
@test "install from release" {
53-
set -eu -o pipefail
54-
cd ${TESTDIR} || ( printf "unable to cd to ${TESTDIR}\n" && exit 1 )
55-
echo "# ddev get tyler36/ddev-laravel-worker with project ${PROJNAME} in ${TESTDIR} ($(pwd))" >&3
56-
ddev config --project-name=${PROJNAME}
57-
ddev start -y >/dev/null
58-
ddev get tyler36/ddev-laravel-worker
59-
ddev restart >/dev/null
60-
health_checks
61-
}
52+
# @test "install from release" {
53+
# set -eu -o pipefail
54+
# cd ${TESTDIR} || ( printf "unable to cd to ${TESTDIR}\n" && exit 1 )
55+
# echo "# ddev get tyler36/ddev-laravel-worker with project ${PROJNAME} in ${TESTDIR} ($(pwd))" >&3
56+
# ddev config --project-name=${PROJNAME}
57+
# ddev start -y >/dev/null
58+
# ddev get tyler36/ddev-laravel-worker
59+
# ddev restart >/dev/null
60+
# health_checks
61+
# }
6262

6363
@test "it processes jobs in Lavarel 11" {
6464
set -eu -o pipefail
@@ -75,3 +75,37 @@ teardown() {
7575
health_checks
7676
queue_checks
7777
}
78+
79+
@test "it cleans up files from pre-release versions" {
80+
set -eu -o pipefail
81+
cd ${TESTDIR}
82+
# echo "# ddev get ${DIR} with project ${PROJNAME} in ${TESTDIR} ($(pwd))" >&3
83+
ddev config --project-name=${PROJNAME}
84+
ddev start -y >/dev/null
85+
86+
# Create fake pre-release files
87+
files="
88+
.ddev/web-build/Dockerfile.ddev-laravel-worker
89+
.ddev/web-build/laravel-worker.conf
90+
"
91+
for file in $files; do
92+
echo '#ddev-generated' > $file
93+
if grep -q -v '#ddev-generated' $file; then
94+
echo 'Fake prelease file should exist but does NOT.'
95+
exit 1
96+
fi
97+
done
98+
99+
# Install the current release of the addon, which should remove the pre-release files.
100+
ddev get ${DIR}
101+
ddev restart
102+
health_checks
103+
104+
# Check pre-release files were removed
105+
for file in $files; do
106+
if grep -q '#ddev-generated' $file; then
107+
echo 'Fake prelease file exists but should NOT.'
108+
exit 1
109+
fi
110+
done
111+
}

web-build/Dockerfile.ddev-laravel-worker

Lines changed: 0 additions & 2 deletions
This file was deleted.

web-build/laravel-worker.conf

Lines changed: 0 additions & 10 deletions
This file was deleted.

0 commit comments

Comments
 (0)