snowdrift/tasks
12
1

Automatic running of crowdmatches on schedule #163

Open
opened 2019年05月23日 01:45:32 +02:00 by wolftune · 7 comments

We need to determine the specs for this. How flexible should this be? What tests are needed? Etc

Currently crowdmatches are just run manually.

Blocked on #629

Implementation

A cron job should be fine. Use date to calculate the precise dates/times to run the crowdmatch at.

We need to determine the specs for this. How flexible should this be? What tests are needed? Etc Currently crowdmatches are just run manually. Blocked on #629 ## Implementation A cron job should be fine. Use `date` to calculate the precise dates/times to run the crowdmatch at.
Author
Owner
Copy link

marked this issue as related to #162

marked this issue as related to #162
Author
Owner
Copy link

mentioned in merge request snowdrift/snowdrift!170

mentioned in merge request snowdrift/snowdrift!170
Author
Owner
Copy link

mentioned in merge request snowdrift/snowdrift!171

mentioned in merge request snowdrift/snowdrift!171

marked this issue as related to #171

marked this issue as related to #171

Now that the process is documented, I don't think we will fall so far behind again, so I'm going to de-prioritize this.

Specs discussion for the crowdmatch itself is in https://gitlab.com/snowdrift/snowdrift/-/issues/171, but there's a separate issue of how the automated process should behave if, for example, there's an error for some reason.

Now that the process is documented, I don't think we will fall so far behind again, so I'm going to de-prioritize this. Specs discussion for the crowdmatch itself is in https://gitlab.com/snowdrift/snowdrift/-/issues/171, but there's a separate issue of how the automated process should behave if, for example, there's an error for some reason.

I think for now, sending an email to community@ or admin@ would probably be enough. If email is down for the same reason it fails, then someone will notice that the crowdmatch wasn't run that month and can catch up manually. Actually, it should probably send an email on either success or failure — easier to notice that way.

We should also make sure its error messages are logged somewhere besides just email, but that's part of a larger process of streamlining our sysadmin/ops/monitoring, so I don't think we need to worry about it here.

The one thing we need to be certain of is that the crowdmatch won't be run more than it is supposed to, since I'm not sure if there is any duplicate prevention in the Haskell at the moment.

I think for now, sending an email to community@ or admin@ would probably be enough. If email is down for the same reason it fails, then someone will notice that the crowdmatch wasn't run that month and can catch up manually. Actually, it should probably send an email on either success or failure — easier to notice that way. We should also make sure its error messages are logged somewhere besides just email, but that's part of a larger process of streamlining our sysadmin/ops/monitoring, so I don't think we need to worry about it here. The one thing we need to be certain of is that the crowdmatch won't be run *more* than it is supposed to, since I'm not sure if there is any duplicate prevention in the Haskell at the moment.

Ok so normally I'd just add an [ana]crontab entry for this.

@monthly 45 crowdmatch /path/to/crowdmatch "$(date +%Y-%m-01)"

However, the server itself is managed by OSUOSL, so I don't want to touch system files, since they would be lost if they needed to rebuild the VM for whatever reason. We could add the cron entry in the OSUSOL cookbook for the VM, but then it would be hard to change, and I'd really prefer the definition to live in the snowdrift code base anyway.

So I need to figure out how to get keter to execute the right commands on redeploy to put a cron config or similar at a static location, and update the cookbook to execute any crontabs at that location? Or find a different way to do things, but not using keter would increase the scope of the issue a lot.

I'd appreciate opinions or feedback on this.

Ok so normally I'd just add an [ana]crontab entry for this. `@monthly 45 crowdmatch /path/to/crowdmatch "$(date +%Y-%m-01)"` However, the server itself is managed by OSUOSL, so I don't want to touch system files, since they would be lost if they needed to rebuild the VM for whatever reason. We _could_ add the cron entry in the OSUSOL cookbook for the VM, but then it would be hard to change, and I'd really prefer the definition to live in the snowdrift code base anyway. So I need to figure out how to get keter to execute the right commands on redeploy to put a cron config or similar at a static location, and update the cookbook to execute any crontabs at that location? Or find a different way to do things, but not using keter would increase the scope of the issue a lot. I'd appreciate opinions or feedback on this.
Sign in to join this conversation.
No Branch/Tag specified
master
master-pre-reset
v0.1.4
v0.1.3
v0.1.2
v0.1.1
release-0.1.0.1
Labels
Clear labels
Blocked
Confidential
We track some issues in a private repo, typically when they contain personal information. In the interest of transparency (and ease of tracking for us), we also keep a stub here in the public issues.
design
Visual design and assets
dev
dev/frontend

Archived

docs
Documentation
finances
Management of financial accounts; Grants and other funding sources
good first issue
Issues that do not require in-depth understanding of background or code
governance
Organisational structure and bylaws
legal
Legal terms, policies and documents
needs-info

Archived

ops
Operations
outreach
Community messaging and recruitment
product/blog
For the blog / Ghost
product/crm
For the CRM / CiviCRM
product/elm-site
Relates to https://codeberg.org/snowdrift/elm-website
product/forum
For the forum / Discourse
product/wiki
product/yesod-site
Relates to https://codeberg.org/snowdrift/snowdrift
research
Research, reference materials and studies
security
Issues about authorisation and authentication
type
bug
Broken feature or regression
type
chore
Housekeeping
type
feature
New feature or functionality
Milestone
Clear milestone
No items
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
snowdrift/tasks#163
Reference in a new issue
snowdrift/tasks
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?