Renovate Bot
9a6ed2f180
Update dependency @types/mocha to v8.2.0
2020-12-08 15:22:46 +00:00
Naz
12eb035bdc
Published new versions
...
- @tryghost/job-manager@0.4.0
2020-12-08 16:44:24 +13:00
Naz
320e7feb0e
✨ Added ability to remove scheduled jobs
...
closes #119
- A future use-case which this feature caters for is allowing to migrate "post scheduler" to use job manager instead of managing scheduling itself
- removeJob method will be needed to allow "rescheduling" of the post
2020-12-08 16:43:18 +13:00
Naz
86b9f0d2ce
Renamed when parameter
...
no issue
- Semantically "at" fits better as it matches the name of similarly purposed UNIX utility
2020-12-03 16:22:56 +13:00
Naz
30c9112bb5
Updated example of scheduled on off job using date
2020-12-03 15:53:10 +13:00
Naz
eb0eb2d744
✨ Added support for one off scheduled jobs
...
closes #115
- When scheduling one off job for future execution you can now pass in Date as a first parameter to `scheduleJob` method
2020-12-02 21:26:15 +13:00
Naz
ed29a29704
Published new versions
...
- @tryghost/job-manager@0.3.4
2020-12-02 00:22:20 +13:00
Naz
35f8933070
Fixed cron definition not accepting seconds parameter
2020-12-02 00:19:01 +13:00
Naz
404209ba30
Published new versions
...
- @tryghost/job-manager@0.3.3
2020-11-30 15:36:54 +13:00
Naz
715789406d
Improved job registration logging
2020-11-30 15:35:57 +13:00
Naz
3892e57194
Added docs on how each method executes the job
2020-11-30 15:30:45 +13:00
Naz
238ff4abdb
Clarified usecases of 'done' and 'cancelled' job events
...
no issue
- Added docs around which events are suited best for job termination/completeion
2020-11-30 13:48:07 +13:00
Naz
6389df346c
Published new versions
...
- @tryghost/adapter-manager@0.2.3
- @tryghost/job-manager@0.3.2
2020-11-26 11:08:10 +13:00
Naz
73b60854cd
Added documentation about bthread polyfill
...
refs https://github.com/TryGhost/Ghost/issues/12402
2020-11-25 15:21:02 +13:00
Naz
a2fdc69a23
Added docs about job lifecycle
...
refs https://github.com/orgs/TryGhost/projects/36#card-49938015
2020-11-25 15:03:54 +13:00
Naz
d1df62f84c
Added description about graceful job termination
2020-11-25 13:56:01 +13:00
Naz
d94830071d
Added description for job termination best practice
2020-11-25 13:55:34 +13:00
Naz
c3ab2be076
Added examples of job and job manager initialization
2020-11-25 13:44:04 +13:00
Renovate Bot
31149f3ade
Update dependency @types/sinon to v9.0.9
2020-11-24 08:45:40 +00:00
Naz
bc93a166e9
Updated readme with instructions about jobs
...
refs https://github.com/TryGhost/Ghost/issues/12402
- Describes different types of jobs that could be executed depending on the nature of the jobs.
- Lays down ground rules on how to design scheduled jobs
2020-11-24 20:15:02 +13:00
Naz
1340306f4c
Updated job manager module description documentation
2020-11-24 19:55:51 +13:00
Naz
58bc922c0e
Fixed tests for cron expression validation
...
refs c0cecd71fe
2020-11-24 16:44:54 +13:00
Naz
67e664208a
Added documentation about job scheduling
...
refs https://github.com/TryGhost/Ghost/issues/12402
- Adds examples on how to queue regular "immediate" and reccuring "scheduled" jobs
2020-11-24 16:40:35 +13:00
Naz
c0cecd71fe
🐛 Fixed cron expression to read seconds parameter
...
no issue
- When providing a crontab schedule expression it should always contain 6 elements first one of them being a "seconds" schedule description . For example: '0/5 * * * * *' - meaning to run every 5 seconds
2020-11-24 16:37:46 +13:00
Naz
a8cb12250b
Published new versions
...
- @tryghost/adapter-manager@0.2.2
- @tryghost/job-manager@0.3.1
- @tryghost/moleculer-service-from-class@0.2.8
- @tryghost/mw-session-from-token@0.1.11
- @tryghost/session-service@0.1.12
2020-11-23 16:14:42 +13:00
Naz
a7570680fb
Updated type definitions files that changed with bump of typescript version
...
refs 295887dd24
2020-11-23 16:13:51 +13:00
Naz
a7b523e0f3
Bumped bree version to 4.0.0
...
refs https://github.com/breejs/bree/issues/50
refs f1ab159
- This bree version allows to avoid additional flag setting when initializing scheduled job
2020-11-23 16:03:36 +13:00
Renovate Bot
e27b788d48
Update dependency cron-validate to v1.4.1
2020-11-23 02:06:12 +00:00
Naz
f1ab1597e8
Changed scheduled jobs not run immediately after initialization
...
refs https://github.com/breejs/bree/issues/50
2020-11-23 14:24:24 +13:00
Renovate Bot
295887dd24
Update dependency typescript to v4.1.2
2020-11-19 22:44:50 +00:00
Naz
06bc47678b
Published new versions
...
- @tryghost/adapter-manager@0.2.1
- @tryghost/job-manager@0.3.0
- @tryghost/mw-session-from-token@0.1.10
- @tryghost/security@0.2.2
- @tryghost/session-service@0.1.11
- @tryghost/zip@1.1.6
2020-11-19 18:17:14 +13:00
Naz
986a59abda
Moved job metadata attribute to global bree config
...
no issue
- Because every job is getting this attribute anyways there's no need to keep it nested on per-job bases
2020-11-19 18:15:52 +13:00
Naz
4b18cbcbdb
✨ Added support for worker threads in scheduled jobs
...
no issue
- When jobs are performing CPU intensive tasks they block main process'
event loop. They also can cause memory leaks or unexpected crashes
effectively crashing the parent proccess. To address these issues jobs need to be performed off of main
process. Worker Threads (https://nodejs.org/dist/latest-v12.x/docs/api/worker_threads.html )
are the best candidate for such work.
- These changes introduce an integration on top of bree
(https://github.com/breejs/bree/ ) which allows to run recurring
jobs in worker thereads. It falls back to child process execution for
Node v10 running without `--experimental-worker` flag.
- bree was chosen not only because it gives a polyfill for older Node
versions. It has support for some of the future use-cases Ghost is looking to
implement, like scheduled jobs.
- This changeset also includes a complete example of job running on an
interval with a possibility for graceful shutdown
2020-11-19 17:59:36 +13:00
Naz
e6e7dc93dd
Added test coverage for graceful job queue shutdown
2020-11-17 18:14:37 +13:00
Renovate Bot
788014c8e0
Update dependency @types/mocha to v8.0.4
2020-11-11 01:41:25 +00:00
Renovate Bot
25bc90e615
Update dependency @tryghost/string to v0.1.14
2020-11-10 10:50:57 +00:00
Daniel Lockyer
8d9e26cb83
Switched symlink
to symlinkSync
...
- we don't provide a callback for this so we want it synchronous
but `symlink` is async. Switching to `symlinkSync` should now fix the
flaky tests
2020-11-10 10:48:25 +00:00
Naz
9cbbef0398
Published new versions
...
- @tryghost/job-manager@0.2.0
2020-11-10 17:16:09 +13:00
Naz
7925f12fcc
Fixed lint for arrow function use in beforeEach block
2020-11-10 17:15:08 +13:00
Naz
d8f7db8773
Cleaned up test
2020-11-10 17:11:31 +13:00
Naz
85b51524c9
Added loggign and more graceful error handling
...
no issue
- This is a quick implementation change to prevent from queue stalling and never becoming idle in case there's an error thrown from within the job function/module
- More robust error handling should be designed soon!
2020-11-10 17:11:24 +13:00
Naz
7dac72d6bf
Added test coverage for basic job registration
2020-11-10 16:35:04 +13:00
Naz
c85ec6aaa5
Added support for job execution from module path
...
no issue
- Jobs should not always be functions, one of the standard practices is having a job defined in a module as a self contained executable function
- First parameter of `addJob` function now also handles path to modules which it imports and executes
2020-11-10 16:32:47 +13:00
Naz
70b42e3a75
Switched cron validation library to cron-validate
...
no issue
- Previous library was relyting on try/catch block to check if the expression is valid. Flow control through error catching is not considered a good practice and can effect performance (https://riptutorial.com/javascript/example/5297/avoid-try-catch-in-performance-critical-functions )
2020-11-10 13:33:01 +13:00
Naz
ae4f35ddd8
Changed scheduleJob method signature to take when parameter first
...
no issue
- Accepting the schedule or a data when scheduled job should be run would follow a signature used in other established frameworks: (1) https://github.com/mperham/sidekiq/wiki/Ent-Periodic-Jobs#definition
- Another reason to put scheduling parameter first is this would allow leaving an optional "data" parameter as last
2020-11-10 13:15:10 +13:00
Naz
9abbe60e10
Published new versions
...
- @tryghost/adapter-manager@0.2.0
- @tryghost/bootstrap-socket@0.2.3
- @tryghost/constants@0.1.2
- @tryghost/errors@0.2.5
- @tryghost/image-transform@1.0.5
- @tryghost/job-manager@0.1.2
- @tryghost/moleculer-service-from-class@0.2.7
- @tryghost/mw-session-from-token@0.1.9
- @tryghost/pretty-cli@1.2.11
- @tryghost/promise@0.1.2
- @tryghost/release-utils@0.6.8
- @tryghost/security@0.2.1
- @tryghost/session-service@0.1.10
- @tryghost/vhost-middleware@1.0.10
- @tryghost/zip@1.1.5
2020-11-05 17:38:41 +13:00
Naz
d1bbd79ece
Updated JSDoc
2020-11-05 17:36:51 +13:00
Naz
1b1794063f
Added experimental job scheduling feature
...
no issue
- This method should be used with caution and should serve as a playground for upcoming new feature of scheduled jobs support
2020-11-05 17:36:29 +13:00
Naz
3da365999d
Added cron expression validation
...
no issue
- CRON format is the most common one used for job scheduling and is well known to most developers
- This will become one of supported formats for job scheduling
2020-11-05 17:07:27 +13:00
Naz
5506c64ae4
Added logging
2020-11-05 16:42:23 +13:00
Naz
48597b0056
Added JSDoc description
2020-11-05 16:41:16 +13:00
Naz
8c24e093d3
Added basic test checking module API
2020-11-05 16:39:51 +13:00
Renovate Bot
84fa9ce4f0
Update dependency supertest to v6.0.1
2020-11-04 14:38:51 +00:00
Renovate Bot
a85408eed9
Update dependency ghost-ignition to v4.2.4
2020-11-04 10:19:32 +00:00
Renovate Bot
3802972c71
Update dependency mocha to v8.2.1
2020-11-02 23:07:13 +00:00
Renovate Bot
c37f2e9686
Update dependency ghost-ignition to v4.2.3
2020-10-29 15:17:22 +00:00
Renovate Bot
e3b2d86115
Update dependency supertest to v6
2020-10-28 19:53:29 +00:00
Renovate Bot
2a3159aec6
Update dependency execa to v4.1.0
2020-10-28 12:06:04 +00:00
Renovate Bot
b7f78dade1
Update dependency fastq to v1.9.0
2020-10-28 11:06:06 +00:00
Renovate Bot
afd2b07d9f
Update dependency sinon to v9.2.1
2020-10-28 09:04:46 +00:00
Renovate Bot
0be17bca34
Update dependency typescript to v4.0.5
2020-10-26 23:25:01 +00:00
Renovate Bot
0590f0cd72
Update dependency sharp to v0.26.2
2020-10-21 11:03:47 +01:00
Matt Hanley
11af5797fd
Fixed line prefix for warning level log
2020-10-21 11:01:52 +01:00
Andrew Hutchings
48d88c5651
vhost-middleware: Removed unused dependencies
...
closes #105
2020-10-21 11:00:51 +01:00
Renovate Bot
05eb5b4cdc
Update dependency @tryghost/string to v0.1.13
2020-10-21 10:06:12 +01:00
Renovate Bot
7858f64671
Update dependency emoji-regex to v9.2.0
2020-10-20 17:15:10 +00:00
Renovate Bot
22c32fee0d
Update dependency mocha to v8.2.0
2020-10-16 21:24:13 +00:00
Renovate Bot
163b10d2ab
Update dependency emoji-regex to v9.1.1
2020-10-13 13:23:39 +00:00
Renovate Bot
e2b880ff01
Update dependency folder-hash to v4
2020-10-12 20:06:16 +00:00
Renovate Bot
e6c3664125
Update dependency @types/sinon to v9.0.8
2020-10-06 20:15:26 +00:00
Renovate Bot
38af1013b7
Update dependency sinon to v9.2.0
2020-10-06 19:10:59 +00:00
Renovate Bot
09a5f584c3
Update dependency @tryghost/string to v0.1.12
2020-09-30 03:05:47 +00:00
Renovate Bot
a7e0e73f16
Update dependency sinon to v9.1.0
2020-09-29 22:07:11 +00:00
Renovate Bot
7dc6f3e7f6
Update dependency @types/sinon to v9.0.7
2020-09-29 20:05:14 +00:00
Renovate Bot
7f2accca8d
Update dependency moleculer to v0.14.11
2020-09-28 04:05:59 +00:00
Renovate Bot
e582d07a85
Update dependency @types/sinon to v9.0.6
2020-09-28 00:05:49 +00:00
Renovate Bot
8566984603
Update dependency supertest to v5
2020-09-25 13:36:18 +00:00
Nazar Gargol
1f73b85e5e
Published new versions
...
- @tryghost/adapter-manager@0.1.11
- @tryghost/bootstrap-socket@0.2.2
- @tryghost/constants@0.1.1
- @tryghost/errors@0.2.4
- @tryghost/image-transform@1.0.4
- @tryghost/job-manager@0.1.1
- @tryghost/moleculer-service-from-class@0.2.6
- @tryghost/mw-session-from-token@0.1.8
- @tryghost/pretty-cli@1.2.10
- @tryghost/promise@0.1.1
- @tryghost/release-utils@0.6.7
- @tryghost/security@0.2.0
- @tryghost/session-service@0.1.9
- @tryghost/vhost-middleware@1.0.9
- @tryghost/zip@1.1.4
2020-09-22 15:36:49 +12:00
Nazar Gargol
d33b377c6a
Corrected "declared in uppper scope" linting errors
2020-09-22 15:33:30 +12:00
Nazar Gargol
07972312ed
Extended resetToken.compare return result with reason for comparison failure
...
refs https://github.com/TryGhost/Ghost/issues/11878
- To be able to identify the reason behind comparison failure on more granular level (like token expiration) had to provide additional information in return result for falsy token comparisons
2020-09-22 15:31:15 +12:00
Nazar Gargol
54f9ff24c2
Extended test coverage for tokens module
...
refs https://github.com/TryGhost/Ghost/issues/11878
- There are multiple reasons why the token can be invalid. This coverage is meant cover these reasons and pave the way for introduction of more rganular errors causing the invlid token
2020-09-22 13:17:07 +12:00
Renovate Bot
01f6345c08
Update dependency sharp to v0.26.1
2020-09-21 00:05:28 +00:00
Renovate Bot
c4edcbce63
Update dependency typescript to v4.0.3
2020-09-18 20:18:17 +00:00
Renovate Bot
6addf093a9
Update dependency folder-hash to v3.3.3
2020-09-02 11:32:41 +00:00
Renovate Bot
0633b9a7fe
Update dependency mocha to v8.1.3
2020-08-28 21:05:06 +00:00
Renovate Bot
155daf42c8
Update dependency mocha to v8.1.2
2020-08-25 20:08:54 +00:00
Renovate Bot
8fe0c84005
Update dependency sharp to v0.26.0
2020-08-25 19:02:24 +00:00
Renovate Bot
d1d244b935
Update dependency moleculer to v0.14.10
2020-08-24 00:06:15 +00:00
Renovate Bot
c121c95721
Update dependency @types/sinon to v9.0.5
2020-08-21 18:56:05 +00:00
Renovate Bot
521ad81727
Update dependency typescript to v4
2020-08-20 16:03:03 +00:00
Renovate Bot
a134e8460d
Update dependency @types/mocha to v8.0.3
2020-08-17 21:03:40 +00:00
Renovate Bot
e5ba7185ee
Update dependency lodash to v4.17.20
2020-08-13 17:20:11 +00:00
Renovate Bot
cfa076f739
Update dependency @tryghost/string to v0.1.11
2020-08-13 09:25:00 +00:00
Renovate Bot
0a6c935153
Update dependency sinon to v9.0.3
2020-08-11 21:07:08 +00:00
Renovate Bot
831ec9f980
Update dependency @types/mocha to v8.0.2
2020-08-11 21:06:10 +00:00
Hannah Wolfe
7501b19557
Published new versions
...
- @tryghost/job-manager@0.1.0
2020-08-11 21:22:33 +01:00
Hannah Wolfe
2c1417da88
✨ Added new job manager package
...
- Minimal working version of a job manager
- Uses fastq for handling the queue
- Exposes 2 methods: addJob and shutdown
2020-08-11 21:17:52 +01:00
Daniel Lockyer
e303baa184
Published new versions
...
- @tryghost/promise@0.1.0
- @tryghost/release-utils@0.6.6
2020-08-11 18:37:00 +01:00
Daniel Lockyer
16f11b929f
Added index.js file to export lib packages
2020-08-11 18:33:30 +01:00
Daniel Lockyer
db19e1605e
Added Bluebird dependency
2020-08-11 18:33:21 +01:00