IBM Cloud Functions alarm package의 cron seconds 필드에 대한 참고 사항
소개
IBM Cloud Functions에서 정기적으로 트리거를 하고 싶어서 alarm package를 이용했습니다.
분당 여러 번 발생하는 트리거는 강제로 중지되므로 주의하십시오.
Alarm package 문서/리포지토리
Using alarms to schedule triggers - IBM Cloud Docs
세 종류의 feeds
OpenWhisk alarm package에는 트리거feed
의 세 가지 유형이 있습니다.
/whisk.system/alarms/interval
)startDate
, stopDate
옵션 지정 가능. /whisk.system/alarms/once
)deleteAfterFire
옵션 지정 가능. /whisk.system/alarms/alarm
)cron
지정. 「초」필드의 지정도 가능.startDate
, stopDate
옵션 지정 가능. maxTriggers
옵션은 deprecated이며 곧 사용되지 않습니다. 기본값은 -1(제한 없음)interval 사용 또는 alarm 사용
정기적으로 트리거를 일으키는 것은 interval
와 alarm
feed 가 있습니다만, 분 간격 밖에 지정할 수 없는 interval 에 대해서, cron 로 유연한 지정이 가능해 초간격도 지정할 수 있어 옵션도 거의 같은 alarm 만 사용하면 부족한 것 같습니다.
단, maxTriggers
옵션 폐지 후의 움직임은 신경이 쓰입니다. (제한 없는 사양이 계속되는지 여부)
Alarm feed (cron)을 사용해 보았습니다 (*/20 * * * * *)
20초 간격 트리거를 시도했습니다. (1분에 3회 발생)
절차
다음 샘플에서 maxTriggers
옵션을 제외하고 실행했습니다.
최신 OpenWhisk 사양에 따르면 maxTriggers
생략하면 최대 실행 횟수 제한이 없습니다.
$ ibmcloud fn action create handler handler.js
$ ibmcloud fn trigger create every-20-seconds \
--feed /whisk.system/alarms/alarm \
--param cron '*/20 * * * * *'
$ ibmcloud fn rule create \
invoke-periodically \
every-20-seconds \
handler
결과
트리거를 작성한 것은 2018-09-28 의 16:25 (일본 시간)이었습니다.
$ ibmcloud fn trigger get --summary every-20-seconds | jq .response.result.status
{
"active": true,
"dateChanged": 1538119522935,
"dateChangedISO": "2018-09-28T07:25:22Z"
}
2018-09-29 의 05:45:20 (일본 시간)을 마지막으로 끝내고 있다…
ADMIN
에서 Trigger frequency is not supported
로 인해 무효화되었습니다.
$ ibmcloud fn trigger get --summary every-20-seconds | jq .response.result.status
{
"active": false,
"dateChanged": 1538119522935,
"dateChangedISO": "2018-09-28T07:25:22Z",
"reason": {
"kind": "ADMIN",
"message": "Trigger frequency is not supported"
}
}
Alarm feed (cron)을 사용해 보았습니다 (20 * * * * *)
분당 20초에 발생하는 트리거를 시도했습니다. (1분에 1회 발생)
절차
트리거 이름을 every-20-second
(seconds에서 변경)로 변경하고 cron
도 20 * * * * *
로 수정했습니다.
$ ibmcloud fn action create handler handler.js
$ ibmcloud fn trigger create every-20-second \
--feed /whisk.system/alarms/alarm \
--param cron '20 * * * * *'
$ ibmcloud fn rule create \
invoke-periodically \
every-20-second \
handler
결과
트리거를 만든 것은 2018-09-29 의 23:30 (일본 시간)이었습니다.
$ ibmcloud fn trigger get --summary every-20-second | jq .response.result.status
{
"active": true,
"dateChanged": 1538231425486,
"dateChangedISO": "2018-09-29T14:30:25Z"
}
2018-09-30 의 15:27:20 (일본 시간)에서도 제대로 움직이고 있습니다.
고찰
OpenWhisk는 1분에 여러 번 발생하는 트리거를 설정할 수 있는 사양입니다.
그러나 매분 특정 초 수에 트리거를 일으킬 수 있으므로 (cron
초 필드 자체는 지원됨), 동일한 action을 여러 트리거와 연결하면 1 분에 여러 번 발생하는 것은 어렵습니다. 없는 것 같습니다.
(예를 들어, 분당 0초, 분당 20초, 분당 40초의 각각의 트리거를 생성한다.)
Reference
이 문제에 관하여(IBM Cloud Functions alarm package의 cron seconds 필드에 대한 참고 사항), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/SakaiYuki/items/e7944d9db752cd96e25f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
20초 간격 트리거를 시도했습니다. (1분에 3회 발생)
절차
다음 샘플에서
maxTriggers
옵션을 제외하고 실행했습니다.최신 OpenWhisk 사양에 따르면
maxTriggers
생략하면 최대 실행 횟수 제한이 없습니다.$ ibmcloud fn action create handler handler.js
$ ibmcloud fn trigger create every-20-seconds \
--feed /whisk.system/alarms/alarm \
--param cron '*/20 * * * * *'
$ ibmcloud fn rule create \
invoke-periodically \
every-20-seconds \
handler
결과
트리거를 작성한 것은 2018-09-28 의 16:25 (일본 시간)이었습니다.
$ ibmcloud fn trigger get --summary every-20-seconds | jq .response.result.status
{
"active": true,
"dateChanged": 1538119522935,
"dateChangedISO": "2018-09-28T07:25:22Z"
}
2018-09-29 의 05:45:20 (일본 시간)을 마지막으로 끝내고 있다…
ADMIN
에서 Trigger frequency is not supported
로 인해 무효화되었습니다.$ ibmcloud fn trigger get --summary every-20-seconds | jq .response.result.status
{
"active": false,
"dateChanged": 1538119522935,
"dateChangedISO": "2018-09-28T07:25:22Z",
"reason": {
"kind": "ADMIN",
"message": "Trigger frequency is not supported"
}
}
Alarm feed (cron)을 사용해 보았습니다 (20 * * * * *)
분당 20초에 발생하는 트리거를 시도했습니다. (1분에 1회 발생)
절차
트리거 이름을 every-20-second
(seconds에서 변경)로 변경하고 cron
도 20 * * * * *
로 수정했습니다.
$ ibmcloud fn action create handler handler.js
$ ibmcloud fn trigger create every-20-second \
--feed /whisk.system/alarms/alarm \
--param cron '20 * * * * *'
$ ibmcloud fn rule create \
invoke-periodically \
every-20-second \
handler
결과
트리거를 만든 것은 2018-09-29 의 23:30 (일본 시간)이었습니다.
$ ibmcloud fn trigger get --summary every-20-second | jq .response.result.status
{
"active": true,
"dateChanged": 1538231425486,
"dateChangedISO": "2018-09-29T14:30:25Z"
}
2018-09-30 의 15:27:20 (일본 시간)에서도 제대로 움직이고 있습니다.
고찰
OpenWhisk는 1분에 여러 번 발생하는 트리거를 설정할 수 있는 사양입니다.
그러나 매분 특정 초 수에 트리거를 일으킬 수 있으므로 (cron
초 필드 자체는 지원됨), 동일한 action을 여러 트리거와 연결하면 1 분에 여러 번 발생하는 것은 어렵습니다. 없는 것 같습니다.
(예를 들어, 분당 0초, 분당 20초, 분당 40초의 각각의 트리거를 생성한다.)
Reference
이 문제에 관하여(IBM Cloud Functions alarm package의 cron seconds 필드에 대한 참고 사항), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/SakaiYuki/items/e7944d9db752cd96e25f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ ibmcloud fn action create handler handler.js
$ ibmcloud fn trigger create every-20-second \
--feed /whisk.system/alarms/alarm \
--param cron '20 * * * * *'
$ ibmcloud fn rule create \
invoke-periodically \
every-20-second \
handler
$ ibmcloud fn trigger get --summary every-20-second | jq .response.result.status
{
"active": true,
"dateChanged": 1538231425486,
"dateChangedISO": "2018-09-29T14:30:25Z"
}
OpenWhisk는 1분에 여러 번 발생하는 트리거를 설정할 수 있는 사양입니다.
그러나 매분 특정 초 수에 트리거를 일으킬 수 있으므로 (
cron
초 필드 자체는 지원됨), 동일한 action을 여러 트리거와 연결하면 1 분에 여러 번 발생하는 것은 어렵습니다. 없는 것 같습니다.(예를 들어, 분당 0초, 분당 20초, 분당 40초의 각각의 트리거를 생성한다.)
Reference
이 문제에 관하여(IBM Cloud Functions alarm package의 cron seconds 필드에 대한 참고 사항), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/SakaiYuki/items/e7944d9db752cd96e25f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)