XCrawler – Github action

name: XCrawler - Build & Tests on: pull_request: branches: [ develop ] jobs: build: # Test on Workstation runs-on: [ Workstation ] services: mysql: image: mysql:8.0.26 env: MYSQL_ROOT_PASSWORD: laravel MYSQL_USER: laravel MYSQL_PASSWORD: laravel MYSQL_DATABASE: laravel ports: - 3307:3306 options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=5 -e MYSQL_ROOT_PASSWORD=laravel -e MYSQL_USER=laravel -e MYSQL_PASSWORD=laravel -e MYSQL_DATABASE=laravel --entrypoint sh mysql:8... Continue Reading →

Setup Linux workspace

Xubuntu 20.04 for lightweight purpose Update after installed sudo apt update && sudo apt -y upgrade sudo apt -y install software-properties-common sudo apt -y install curl git unzip perl libnet-ssleay-perl openssl openssh-server libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python DatabasesMySQLMongoDB : https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/ sudo apt install -y mysql-client mysql-sandbox mysql-server mysql-testsuite sudo /etc/init.d/mysql restart sudo mysql -u root... Continue Reading →

Understand Laravel job traits

class ProcessPodcast implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; /** * The podcast instance. * * @var \App\Models\Podcast */ protected $podcast; /** * Create a new job instance. * * @param App\Models\Podcast $podcast * @return void */ public function __construct(Podcast $podcast) { $this->podcast = $podcast; } /** * Execute the job. * * @param... Continue Reading →

XCrawler – Automatically post to WordPress

Okay bài toán này trước đây mình đã xử lý. Tuy nhiên giờ thì xử lý triệt để hơn. Gửi notifications / email khi có favorited movies. Dựa trên genres / castsGửi email khi có movie mới lên WordPress Về cơ bản 2 bài toán này similar nhau. Observe table movies khi có createdKiểm tra... Continue Reading →

Laravel – Horizon & Totem

Lâu rồi không update bài gì cho SoulEvil nên nhân tiện post linh tinh 1 chút về 2 món này. Horizon Okay define 1 chút về Horizon. Giả sử có file conf Supervisor sau [program:laravel-worker] process_name=%(program_name)s_%(process_num)02d command=php /path/to/your/laravel/install/artisan queue:work --sleep=3 --tries=3 autostart=true autorestart=true user=your_local_user numprocs=8 redirect_stderr=true stdout_logfile=/path/to/your/laravel/install/queue.log stderr_logfile=/path/to/your/laravel/install/queue.err.log Oki em Supervisor này có nhiệm xử... Continue Reading →

How to use Google Drive in Laravel

Install package Google Drive API V3 composer require nao-pon/flysystem-google-drive:~1.1 Thêm provider GoogleDriveServiceProvider vào file config/app.php 'providers' => [ // ... App\Providers\GoogleDriveServiceProvider::class, // ... ], Nội dung provider tham khảo ở dưới https://github.com/ivanvermeyen/laravel-google-drive-demo/blob/master/app/Providers/GoogleDriveServiceProvider.php Update tiếp config/filesystems.php 'disks' => [ // ... 'google' => [ 'driver' => 'google', 'clientId' => env('GOOGLE_DRIVE_CLIENT_ID'), 'clientSecret' => env('GOOGLE_DRIVE_CLIENT_SECRET'), 'refreshToken' => env('GOOGLE_DRIVE_REFRESH_TOKEN'),... Continue Reading →

Up ↑