قابلیت تعریف CronJob و Queue برای لاراول، امکان انتخاب نسخهی NodeJS و امکانات بیشتر
۱۹ اردیبهشت ۱۳۹۸
همانطور که قولش را دادیم، اولویتمان با قابلیتهای درخواستی شما است. در این نوشته، قابلیتهایی جدیدی را معرفی میکنیم که بیشترین درخواست را از سمت شما داشتهاند. اگر لاراولی هستید، حتما این نوشته را مطالعه کنید.
انتخاب نسخهی NodeJS
تا دیروز، برنامههای نود جی اس در سرویس ابری لیارا روی ورژن 8 این پلتفرم اجرا میشدند. اما از امروز به بعد برنامههای NodeJs با یکبار دیپلویکردن، به صورت پیشفرض به نسخهی 10 ارتقا داده میشوند.
اما اگر به دنبال این هستید که روی همان نسخهی 8 بمانید و یا از نسخههای 11 و یا 12 استفاده کنید، میتوانید فایل liara.json برنامهیتان را بهروز کرده و نسخهی مد نظرتان را در آن بنویسید:
{
"port": 3000,
"node": {
"version": "12"
}
}
در حال حاظر، از نسخههای زیر پشتیبانی میشود:
- 8
- 10
- 11
- 12
تعریف CronJob
گاهی اوقات نیاز است کار خاصی در زمان خاصی و به صورت دورهای انجام شود، مثلا تهیهی فایل پشتیبان از پایگاه داده، ارسال ایمیل و خبرنامه و کارهایی نظیر این. برای برنامههای لاراولی امکان تعریف CronJob را فراهم کردیم که این قبیل کارها را بتوانید به راحتی انجام دهید.
برای تعریف یک Job، باید از فایل liara.json کمک بگیرید:
{
"cron": [
"* * * * * echo 'Hello World :)' >> /tmp/hello.txt"
]
}
در نمونهی بالا، یک Job ساده تعریف کردیم که در هر دقیقه پیام Hello World :)
را در فایل /tmp/hello.txt
چاپ میکند.
این امکان وجود دارد که به تعداد دلخواهتان وظیفه یا همان Job تعریف کنید.
در پنل لیارا هم لیست وظایف تعریف شده را به همراه توضیح خوانای آن میتوانید مشاهده کنید:

برای برنامههای لاراولی، تعریف یک وظیفه به شکل زیر کافی است:
{
"cron": [
"* * * * * cd $ROOT && php artisan schedule:run >> /dev/null 2>&1"
]
}
به جای نوشتن
/var/www/html
میتوانید از متغیر$ROOT
استفاده کنید.
تعریف و مدیریت صف (Queue) با Supervisor
یکی از امکانات مهم Laravel، قابلیت تعریف صف (Queue) است. از امروز از این قابلیت لاراول هم پشتیبانی میکنیم. در پتلفرم لاراول، Supervisor نصب شده و شما با ایجاد یک فایل به نام supervisor.conf
در ریشهی برنامهتان، میتوانید تنظیمات صفهای مختلفتان را در آن وارد کنید. و در نهایت با یکبار دیپلویکردن، صفهای شما شروع به کار خواهند کرد.
Supervisor برنامهی بسیار مفیدی است که سعی میکند صفهای شما را همیشه در حال اجرا نگهدارد. اگر به هر دلیلی صفهایتان به خطا بخورند و خاموش شوند، Supervisor آنها را دوباره ایجاد و فعال میکند.
از بخش خط فرمان (کنسول) برنامهیتان هم میتوانید با supervisorctl کار کنید و وضعیت صفهایتان را مشاهده کنید.
supervisorctl status
یک نمونه کانفیگ ساده برای یک صف با نام sms که وظیفهی ارسال پیامک به کاربران را به عهده دارد:
[program:scheduler]
process_name=%(program_name)s_%(process_num)02d
command=php $ROOT/artisan queue:work --queue=sms --tries=3
autostart=true
autorestart=true
numprocs=1
user=www-data
redirect_stderr=true
stdout_logfile=/tmp/sms-queue.log
برای اطلاعات بیشتر میتوانید به لینکهای زیر مراجعه کنید:
امکان غیر فعال کردن مرحلهی ساختن CSS و JS ها در لاراول
شاید عنوان این بخش کمی عجیب باشد، اما واقعا عنوان سادهتری برای آن نیافتیم 😀
برنامههای لاراولی، ممکن است که بخش Front End نداشته باشند و فقط یک API صرف باشند. لیارا به صورت خودکار پکیجهای npm را برایتان نصب میکند و در نهایت دستور npm run production
را برایتان وارد میکند تا فایلهای CSS و JavaScript برنامهیتان ساخته شوند. در حالی که این قابلیت کاربردیای است، در برنامههایی که فقط API هستند اضافه است و باعث زمانبر تر شدن فرایند استقرار برنامه میشود.
از این پس، امکان غیر فعال کردن این مرحله وجود دارد:
{
"laravel": {
"buildAssets": false
}
}
بهصورت پیشفرض، buildAssets
برابر true
است.
افزایش سرعت با فعالکردن کش در لاراول
دو قابلیت کوچک اما مهم دیگر هم اضافه شده که به شما این امکان را میدهد تا بتوانید بعد از هر بار استقرار، دستورات Laravel را برای کشکردن کانفیگها و route ها را بهصورت خودکار اجرا کنید. این کار باعث افزایش سرعت برنامهیتان میشود و برای اجرای برنامهها در حالت production توصیه میشود.
{
"laravel": {
"routeCache": true,
"configCache": true,
}
}
اطلاعات بیشتر:
در نهایت، فایل liara.json برای یک برنامهی لاراولی ممکن است به این شکل نهایی شود:
{
"cron": [
"* * * * * cd $ROOT && php artisan schedule:run >> /dev/null 2>&1"
],
"laravel": {
"routeCache": true,
"configCache": true,
"buildAssets": true
}
}
انتشار Liara CLI 1.2.0
برای استفاده از قابلیتهای جدید، آخرین نسخهی CLI ما را نصب کنید:
npm i -g @liara/cli
ما تمام تلاشمان را میکنیم تا بهترین تجربهها را برایتان فراهم کنیم. لطفا نظرات و پشنهاداتتان را از طریق شبکههای اجتماعی به گوش ما برسانید.
برای ارائه پیشنهادات و یا نظرات درباره لیارا، میتوانید از طریق توئیتر، تلگرام و یا اینستاگرام با ما در ارتباط باشید.
توسعهدهندگان دربارهی ما چه میگویند
تجربه کار باliara_cloud@امروز خیلی خوب بود. یکی از سرویس هام رو منتقل کردم روش و راضیم. انقد سریع و جذاب کارم راه افتادم اصن باورم نمیشد! برعکس سرویس های PaaS دیگه با اون همه پیچیدگیشون. دمتون گرم
...
MohammadReza
![liara testimonial]()
keikaavousi
بعد از بسته شدن @fandoghpaas و ناراحتی همهمون از اینکه یه سرویس خوب و صادق نمیتونه از پس هزینهها بر بیاد، سرویسم رو منتقل کردم به پاس لیارا (https://liara.ir @liara_cloud) . تجربه راحت و خوب. تفاوتهایی داشت که کمی کار میخواست ولی تا الان کاملا راضی.
jadi
![liara testimonial]()
jadi
با قدرت میتونم بگم تیم پشتیانی لیاراliara_cloud@یکی از بهترین تیمهای پشتیبانی که تا حالا دیدم. کارشون ارائه سرویسهای PaaS هست ولی من سوال در سطح برنامه خودمم(نه زیرساخت پلتفرم) که میپرسم بازم کامل و به موقع راهنمایی میکنن.
Amir
![liara testimonial]()
amirmazinani_ir
واسه سرویس PaaS با اختلاف لیارا بهترین رابط کاربری داره و یکی از مزیتهای سرویس دیتابیسشون اینه که خودشون به صورت دورهای بکآپ میگیرن.
...
Ali Najafi
![liara testimonial]()
me_ali_najafi
یکی از کارهای خوبی که جدیداً میکنم اینه که یه دیتابیس روی لیارا میسازم و به پروژه وصل میکنم اینطوری هم خونه و هم محل کار دیتابیس بروز رو دارم و راحت میتونم ادامه بدم کار روliara_cloud@
Navid
![liara testimonial]()
1navid
عاشقliara_cloud@شدم درسته در حد AWS نیست ولی خب تجربه خوبی واسه پروژه های داخل ایران ارائه میده، میتونم رو CD هم اجراش کنم
Amir H Shekari
![liara testimonial]()
vanenshi