Yii2 프로그래밍 가이드: Cron 서비스 실행 방법
"Yii가 무엇인가요?"라고 묻는다면 이전 튜토리얼을 확인하세요. Yii 프레임워크 소개, Yii의 이점을 검토하고 2014년 10월에 출시된 Yii 2.0의 새로운 기능을 간략하게 설명합니다. 흠>
이 Yii2 프로그래밍 시리즈에서는 독자들에게 Yii2 PHP 프레임워크 사용 방법을 안내할 것입니다. 오늘 튜토리얼에서는 Yii의 콘솔 기능을 활용하여 크론 작업을 실행하는 방법을 공유하겠습니다.
과거에는 크론 작업에서 웹 액세스 가능 URL인 wget을 사용하여 백그라운드 작업을 실행했습니다. 이로 인해 보안 문제가 발생하고 일부 성능 문제가 발생합니다. 부트 시리즈 보안 기능의 위험을 완화하는 몇 가지 방법을 논의하는 동안 콘솔 기반 명령으로 전환하고 싶었습니다. Yii2를 사용하면 이는 매우 간단합니다.
오늘의 예에서는 이 Twitter API 에피소드에서 설명하는 Twixxr 사이트의 콘솔 기반 cron 명령을 시연하겠습니다. 속도 제한 및 성능 관리 문제로 인해 Twitter API는 효율적이고 안정적인 크론 작업에 크게 의존합니다. 그래서 이것은 여러분과 공유할 수 있는 훌륭한 예입니다.
시작하기 전에 다시 한 번 말씀드리고 싶습니다. 여러분의 아이디어와 피드백에 항상 감사드립니다. 질문이나 주제 제안이 있는 경우 아래 댓글에 의견을 게시해 주세요. Twitter @reifman을 통해 저에게 직접 연락하실 수도 있습니다.
크론이란 무엇인가요?
Wikipedia에서는 cron을 "Unix 계열 컴퓨터 운영 체제의 시간 기반 작업 스케줄러"라고 설명합니다. 이것은 매우 정확합니다. 기본적으로 cron은 로그 관리 및 백업부터 API 요청, 데이터베이스 정리에 이르기까지 웹 서비스를 실행하는 데 필요한 모든 백그라운드 작업을 실행합니다.
서버의 기존 크론 작업을 보려면 일반적으로 sudo crontab -l
를 입력하면 다음과 같은 내용이 표시됩니다.
왼쪽에서 이러한 작업을 3~15분마다 또는 매일 자정 등에 활성화하도록 지정하고 오른쪽에는 실행할 스크립트가 있습니다. 참조Cron 작업(Envato Tuts+)을 사용하여 작업 예약.
Let's Encrypt 스크립트는 고유한 콘솔 명령이라는 점에 유의하세요. 이는 우리 서버의 명령줄에서 실행됩니다. 그러나 위의 모든 회의 일정 작업은 wget을 통해 실행됩니다. 이는 백그라운드 작업을 수행하는 웹 애플리케이션에 대해 특정 시간에 웹 브라우저에서 요청을 실행하는 봇과 같습니다.
외부 웹 요청에 필요한 오버헤드와 서버의 스크립트에 대한 시간 제한 제약 외에도 이러한 액세스 포인트도 보호해야 합니다. 다음은 회의 기획자가 이를 수행할 수 있는 방법의 예입니다.
으아악사용자가 관리자로 로그인했는지, 동일한 인터넷 IP 주소를 사용하는 서버에서 로컬로 실행 중인지 확인합니다.
콘솔 기반 Cron 명령 구현
Alex Makarov는 Yii 프레임워크에서 작업하는 주요 자원봉사자 중 한 명이며 제가 Envato Tuts+ 프레임워크에 대해 정기적으로 글을 쓸 때 제 질문에 답변하는 데 도움을 줍니다. 내 보안 사건을 읽은 후 그는 크론 작업을 실행하는 데 Yii2의 기본 콘솔 기능을 사용하지 않는 이유를 물었습니다. 기본적으로 나는 모른다.
/frontend/controllers/DaemonController.php가 있는 것처럼 /console/controllers/DaemonController.php를 만들었습니다. 이 튜토리얼에서는 더 작고 간단한 Twixxr 웹 서비스에 대해 이 작업을 수행하겠습니다.
저는 콘솔을 사용하여 데이터베이스 마이그레이션(예: ./yii migrate/up 7
)을 실행하는 데 익숙하지만 그게 전부입니다. 백그라운드 작업을 수행하는 데 사용해 보고 싶습니다.
이전 튜토리얼에서 쓴 것처럼, 저의 초기 웹사이트인 Twixxr에는 여성 소유의 인플루언서 Twitter 계정과 교류하려는 모든 사용자 요청을 충족시키기 위해 API 호출을 정기적으로 교체하기 위해 많은 백그라운드 프로세스가 필요했습니다.
홈페이지는 다음과 같습니다
그래서 저는 Twixxr이 콘솔 기반 cron 컨트롤러를 실행하기 위한 좋은 테스트 플랫폼이 될 것이라고 생각했습니다.
새로운 DaemonController.php
이것은 나의 새로운 콘솔 기반 DaemonController.php의 핵심입니다:
으아악내 프런트 엔드 기반 컨트롤러와 구조가 매우 유사하지만 /console 트리에 있으므로 네트워크를 통해 안전하게 액세스할 수 없습니다. Apache 웹 서버 사이트가 이 영역을 검색하도록 구성되어 있지 않습니다.
위의 예에서 actionFrequent()
将每两到三分钟调用一次。它处理另一组 Twixxr 友谊请求。另一方面,actionQuarter()
는 15분마다 호출되어 브라우징 계정의 프로필 정보를 업데이트합니다. cron 파일에서 예약이 어떻게 작동하는지 살펴보겠습니다.
새 크론탭 파일
기본적으로 내 crontab 파일에서 Let's Encrypt 갱신에 대해 위에 표시된 대로 wget을 직접 Linux 스크립트로 대체했습니다.
내용을 나열하려면 sudo crontab -e
进行编辑,或输入 -l
를 입력하세요. 내 Twixxr 크론 파일은 다음과 같습니다.
$ sudo crontab -l # m h dom mon dow command */3 * * * * /var/www/twixxr/yii daemon/frequent */15 * * * * /var/www/twixxr/yii daemon/quarter 0 * * * * /var/www/twixxr/yii daemon/hourly 15 1 * * * /var/www/twixxr/yii daemon/overnight 15 3 * * 5 /var/www/twixxr/yii daemon/weekly #40 2 * * * /usr/sbin/automysqlbackup 30 2 * * 1 /usr/bin/letsencrypt renew >> /var/log/le-renew.log
这非常简单。 /var/www/twixxr/yii daemon/frequent
的左侧是 yii 解释器所在的路径,右侧是控制台控制器和调用的方法。 p>
切换时一切都很顺利。我还没有切换 Meeting Planner,因为我想做更多测试。当后台任务中断时,很难知道也很难调试它们(尽管 Sentry 错误日志记录有很大帮助)。
需要考虑的问题
我遇到的一个问题是控制台命名空间与前端命名空间不同,因此,例如,我在教程中设置的 SiteHelper.php 组件(该组件描述了从单个代码库运行多个网站)失败了当我调用它时。删除它是有效的,但我需要运行测试以确保底层后台代码仍然有效。不过,大部分情况下切换都很顺利。
与任何其他代码更改一样,彻底测试和监控。
下一步是什么
展望未来,我将探索在 Yii2 框架内构建 REST API,该框架恰好依赖于创建一个不同的子树,例如控制台树,但用于外部 API。当然,这会带来复杂的身份验证和安全问题……所以与您一起探索这些将会很有趣。我将从多个角度研究 API。我对此感到非常兴奋。
请观看我的“使用 Yii2 编程”系列中即将推出的教程,我将继续深入研究该框架的不同方面。另请浏览“使用 PHP 构建您的初创公司”系列,其中记录了构建 Simple Planner 和 Meeting Planner 的过程。
如果您想知道下一个 Yii2 教程何时发布,请在 Twitter 上关注我 @reifman 或查看我的讲师页面以获取更新。
相关链接
- Yii2 Developer Exchange,我的 Yii2 资源站点
-
使用 Cron 作业安排任务 (Envato Tuts+)
- 如何在 Yii2 中实现 cron(Yii 文档)
- Twixxr,其中提到的示例网络服务
위 내용은 Yii2 프로그래밍 가이드: Cron 서비스 실행 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











클라우드 컴퓨팅 기술이 지속적으로 발전하면서 데이터 백업은 모든 기업이 반드시 해야 할 일이 되었습니다. 이러한 맥락에서 가용성이 높은 클라우드 백업 시스템을 개발하는 것이 특히 중요합니다. PHP 프레임워크 Yii는 개발자가 고성능 웹 애플리케이션을 빠르게 구축하는 데 도움이 되는 강력한 프레임워크입니다. 다음은 Yii 프레임워크를 사용하여 고가용성 클라우드 백업 시스템을 개발하는 방법을 소개합니다. 데이터베이스 모델 설계 Yii 프레임워크에서 데이터베이스 모델은 매우 중요한 부분입니다. 데이터 백업 시스템에는 많은 테이블과 관계가 필요하기 때문에

전각 및 반각 단축키 사용 안내 전각 및 반각은 중국어 입력 방법에서 일반적으로 사용되는 두 가지 상태입니다. 전각 상태에서는 한 문자가 한 문자의 위치를 차지하고, 반각 상태에서는 한 문자가 한 문자 위치를 차지합니다. 캐릭터 위치의 절반을 차지합니다. 일상적인 워드 프로세싱에서는 전각과 반각 사이를 전환해야 하는 경우가 많으며, 단축키를 익히면 작업 효율이 향상됩니다. 이 글에서는 전각과 반각 전환을 위한 단축키 사용법을 소개합니다. 1. Windows 시스템에서 전폭 및 반폭 전환 Windows 시스템에서 전폭과 반폭 상태 간에 전환하려면 일반적으로 다음을 사용합니다.

웹 애플리케이션에 대한 수요가 계속 증가함에 따라 개발자는 개발 프레임워크를 선택할 때 점점 더 많은 선택권을 갖게 되었습니다. Symfony와 Yii2는 두 가지 인기 있는 PHP 프레임워크입니다. 둘 다 강력한 기능과 성능을 갖추고 있지만 대규모 웹 애플리케이션을 개발해야 하는 경우 어떤 프레임워크가 더 적합합니까? 다음으로 더 나은 선택을 하실 수 있도록 Symphony와 Yii2의 비교 분석을 진행하겠습니다. 기본 개요 Symphony는 PHP로 작성된 오픈 소스 웹 애플리케이션 프레임워크이며 다음을 기반으로 합니다.

Yii 프레임워크는 웹 애플리케이션 개발 프로세스를 단순화하기 위한 다양한 도구와 구성 요소를 제공하는 오픈 소스 PHP 웹 애플리케이션 프레임워크입니다. 데이터 쿼리는 중요한 구성 요소 중 하나입니다. Yii 프레임워크에서는 SQL과 유사한 구문을 사용하여 데이터베이스에 액세스하여 데이터를 효율적으로 쿼리하고 조작할 수 있습니다. Yii 프레임워크의 쿼리 빌더에는 주로 ActiveRecord 쿼리, QueryBuilder 쿼리, 명령 쿼리 및 원본 SQL 쿼리 유형이 포함됩니다.

인터넷이 계속 발전함에 따라 웹 애플리케이션 개발에 대한 수요도 점점 높아지고 있습니다. 개발자의 경우 애플리케이션 개발에는 개발 효율성을 향상시킬 수 있는 안정적이고 효율적이며 강력한 프레임워크가 필요합니다. Yii는 풍부한 기능과 우수한 성능을 제공하는 선도적인 고성능 PHP 프레임워크입니다. Yii3은 Yii2를 기반으로 성능과 코드 품질을 더욱 최적화하는 Yii 프레임워크의 차세대 버전입니다. 이번 글에서는 Yii3 프레임워크를 사용하여 PHP 애플리케이션을 개발하는 방법을 소개하겠습니다.

현재 정보화 시대에는 빅데이터, 인공지능, 클라우드 컴퓨팅 등의 기술이 주요 기업의 화두가 되었습니다. 이러한 기술들 중에서 고성능 그래픽 처리 기술로서 그래픽 카드 렌더링 기술이 점점 주목을 받고 있다. 그래픽 카드 렌더링 기술은 게임 개발, 영화 및 TV 특수 효과, 엔지니어링 모델링 및 기타 분야에서 널리 사용됩니다. 개발자에게 자신의 프로젝트에 적합한 프레임워크를 선택하는 것은 매우 중요한 결정입니다. 현재 언어 중에서 PHP는 Yii2, Ph와 같은 뛰어난 PHP 프레임워크 중 매우 역동적인 언어입니다.

PHP 날짜 프로그래밍 가이드: PHP를 사용하여 특정 날짜의 요일을 결정하는 방법을 알아보세요. PHP 프로그래밍에서 날짜 및 시간 관련 문제를 처리해야 하는 경우가 종종 있습니다. 특정 날짜의 주. PHP는 이 기능을 쉽게 구현할 수 있는 다양한 날짜 및 시간 처리 기능을 제공합니다. 이 기사에서는 PHP에서 특정 날짜의 요일을 결정하는 방법을 자세히 소개하고 구체적인 코드 예제를 제공합니다. 1. date() 함수를 사용하여 요일을 가져옵니다. PHP의 date() 함수를 사용하여 형식을 지정할 수 있습니다.

Go 언어(Golang)는 Google이 개발한 프로그래밍 언어로, 디자인이 간단하고 효율적이며 강력한 동시성 기능을 갖추고 있어 많은 개발자들이 선호합니다. 이 글에서는 Go 언어 프로그래밍에 대한 간단한 입문 가이드를 제공하고, 기본 개념과 구문을 소개하며, Go 언어 프로그래밍을 더 잘 이해하고 배우는 데 도움이 되는 특정 코드 예제를 첨부합니다. 환경 설정 및 구성의 첫 번째 단계는 Go 언어용 개발 환경을 설정하는 것입니다. Go 공식 홈페이지(https://golang.org/)로 이동하실 수 있습니다.
