Mongodb, AMQP Cloud | Crontab Parser – YIL 18/2/2020

Những project nhỏ nhỏ của mình đôi khi cần dùng đến database và mình thường chọn dùng Cloud thay vì tự deploy để đỡ phải mất công maintain.

1. MongoDB Atlas

Tiêu chi đầu tiên khi tìm Cloud Service cho các project nhỏ là nó phải free (free hoàn toàn hoặc là free với giới hạn đủ dùng) và MongoDB Atlas đáp ứng được yêu cầu này.

MongoDB Atlas cung cấp MongoDB service trên nền tảng Cloud. Khi dùng MongoDB Atlas thì bạn không phải khởi chạy MongoDB nữa, ứng dụng của bạn sẽ kết nối trực tiếp đến MongoDB Atlas, đỡ mất công.

MongoDB Atlas cung cấp Free Tier với 500MB dung lượng lưu trữ cũng như các Cloud Provider và Region khác nhau để lựa chọn. Với mỗi Cloud Provider thì sẽ có những Region được Free khác nhau, mình chọn sao cho Region phù hợp với nhu cầu cá nhân.

Mongodb Atlas Region

Truy cập và dùng thử ở đây nhé https://www.mongodb.com/cloud/atlas.

2. Cloud AMQP

Có free database rồi, giờ muốn có free Queue Server thì cũng có luôn Cloud AMQP

Cloud AMQP cung cấp RabbitMQ Service trên nền tảng Cloud. Với Free Plan ta sẽ có 1 shared instance RabbitMQ và:

  • Max 100 queues
  • Max 10 000 queued messages
  • Max idle queue time 28 days
  • Max 1M messages/month
  • Max 20 connections

Thế chắc cũng đủ để vọc vạch rồi nhỉ :D. Xem thêm tại https://www.cloudamqp.com/

CloudAMQP Free Plan

3. Crontab Parser

Vọc vạch nghịch với cron job thì mình cần biết mốc thời gian tiếp theo mà 1 job sẽ được thực thi là khi nào, search Google một lúc thì tìm được thư việc Crontab Parser này.

Crontab Parser cung cấp hàm để parse 1 crontab expression và lấy ra các mốc thời gian mà expression đó sẽ được chạy.

Ví dụ từ Readme của thư viện

var parser = require('cron-parser');
 
try {
  var interval = parser.parseExpression('*/2 * * * *');
 
  console.log('Date: ', interval.next().toString()); // Sat Dec 29 2012 00:42:00 GMT+0200 (EET)
  console.log('Date: ', interval.next().toString()); // Sat Dec 29 2012 00:44:00 GMT+0200 (EET)
 
  console.log('Date: ', interval.prev().toString()); // Sat Dec 29 2012 00:42:00 GMT+0200 (EET)
  console.log('Date: ', interval.prev().toString()); // Sat Dec 29 2012 00:40:00 GMT+0200 (EET)
} catch (err) {
  console.log('Error: ' + err.message);
}

Xem thêm tại: https://www.npmjs.com/package/cron-parser