어제 만들다가 버린 웹크론... > 자유게시판

자유게시판

어제 만들다가 버린 웹크론... 정보

어제 만들다가 버린 웹크론...

본문

포기했습니다.

귀차니즘....

 

# 1차


var CronJob = require('cron').CronJob;
var request = require('request');
var fs = require('fs');
var DataDir = './data/';
var url = '';
global.job_tree = [];
 
// Data 폴더를 검색 하여 파일만큼 처리
fs.readdir(DataDir, function (err, filenames){
 
    var i;
    for(i = 0; i < filenames.length; i++) {
 
		ReadFile(DataDir, filenames[i]);
    }
});
 
 
 
 
//변경된 파일이 있다면 종료 후 재시작 한다.
fs.watch(DataDir, (event, filename) => {
	if(filename) {
 
		console.log('내용변경: '+filename);
		ReadFile(DataDir, filename);
	}
});
 
 
 
// 파일 READ 하여 크론탭 생성
function ReadFile(Dir, filenames) {
 
	File = Dir+filenames;
	fs.readFile(File, function (err, data) {
 
		if(err) return;
		if(global.job_tree[filenames]) global.job_tree[filenames].stop();
 
		new_data = data.toString().split("\r\n");
		global.job_tree[filenames] = new CronJob({
			cronTime: new_data[0],
			onTick: function(data) {
 
				url = new_data[1];
				request(url, function(error, response, html) {
 
					console.log(url);
				});
			},
			start: false,
			timeZone: 'Asia/Seoul'
		});
		global.job_tree[filenames].start();
	});
}

 

 

 

# 2차


var CronJobManager = require('cron-job-manager'),
manager = new CronJobManager( // this creates a new manager and adds the arguments as a new job.
'a_key_string_to_call_this_job',
'0 30 * * * *', // the crontab schedule
function() { console.log("tick - what should be executed?") },
{
  start:true,
  timeZone:"Asia/Seoul",
  completion: function() {console.log("a_key_string_to_call_this_job has stopped....")}
} 
);
var request = require('request');
var md5 = require('md5');
var fs = require('fs');
var DataDir = './data/';
var JobList = new Array();
 
// Data 폴더를 검색 하여 파일만큼 처리
fs.readdir(DataDir, function(err, filenames){
 
	for(var index in filenames) {
 
		fs.readFile(DataDir+filenames[index],
			(function(filename, err, data) {
 
				key = 'job_' + md5(filename[index]);
				JobList.push(key);
 
				new_data = data.toString().split("\r\n");
				//console.log({new_data, key});
 
				manager.add(key, new_data[0], function(e) {
					request(new_data[1], function(error, response, html) {
 
						console.log(new_data[1]);
					});
					//console.log(url);
				});
				manager.start(key);
			}).bind(null, filenames[index])
		);
	}
});
추천
2

댓글 8개

일단은 작동은 하는데 실시간 변경 검출 하고 url이 하나로 고정 되는걸 못잡았습니다...

만들다가 말아버린거라...
당분간 보류 입니다.
언젠간 공개 하겠습니다 ㅋㅋㅋ

다른 프로그램으로는
http://blog.z9n.net/126
도 있습니다.
전체 199,641 |RSS
자유게시판 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT