phantom-worker
Dependencies
- Redis Server
Use redis to make a task queue and cache html.
Quick Start
pm2
1. Clone and Start viagit clone https://github.com/kelp404/phantom-worker.gitcd phantom-workernpm installpm2 start process.json
2. Create a task to render the page
const device = ;const phantomWorker = ; exports { if type === 'bot' // Render the html for bots. phantomWorker; return; };
You also can create the task by yourself via Kue.
const device = ;const kue = ; const queue = kue; exports { if type === 'bot' // Render the html for bots. const job = queue; job; job; return; };
Config
phantom-worker use config.
You can add your config for your NODE_ENV
.
/config/production.js
moduleexports = phantomWorker: name: 'phantom-worker' isCleanAllScriptTags: true // Remove all <script> in the html when it is true. concurrentQuantity: 2 // How many PhantomJS work in the same time? contentCacheTTL: 86400 // 24 hrs = 86400s contentCacheRedisPrefix: 'c:' phantomArguments: '--load-images=no' '--disk-cache=yes' '--disk-cache-path=/tmp/phantom-worker' readContentAfter: 0 // minute seconds. If it is 0 checkContentScript will bee executed. checkContentInterval: 200 // minute seconds checkContentRetryTimes: 50 checkContentScript: "function(){return document.getElementsByClassName('nprogress-busy').length <= 0}" redis: host: 'localhost' port: 6379 password: '' db: 2 ;
checkContentScript
If your web use NProgress. You can use this script to check the client site render is done.
{ return documentlength <= 0;}