forked from veny/GearmaNode
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgearmanode.js
78 lines (68 loc) · 2.4 KB
/
gearmanode.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
// Copyright 2013 The GearmaNode Library Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS-IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/*
* @fileoverview This script represents the entry point for Gearmanode: the Node.js binding for Gearman.
* @author [email protected] (Vaclav Sykora)
* @exports gearmanode
*/
var winston = require('winston'),
version = require('./gearmanode/version'),
common = require('./gearmanode/common'),
job = require('./gearmanode/job'),
Client = require('./gearmanode/client').Client,
Worker = require('./gearmanode/worker').Worker;
winston.log('info', 'GearmaNode %s, running on Node.js %s [%s %s], with pid %d',
version.VERSION, process.version, process.platform, process.arch, process.pid);
/**
* Winston logging extension:
* This method represent a way to eliminate the cost constructing a logging message, string construction and concatenation,
* regardless of whether the message is logged or not.
*
* @function
* @param level logging level to be tested if enabled
* @returns {booleam} flag whether given level enabled or not
*/
winston.Logger.prototype.isLevelEnabled = function(level) {
for (key in this.transports) {
var transportLevel = this.transports[key].level;
if (this.levels[transportLevel] <= this.levels[level]) { return true; }
}
return false;
}
/**
* Factory method for a client.
*
* @function
* @param options see constructor of {@link Client}
* @returns {Client} newly created client
* @link Client
*/
exports.client = function (options) {
return new Client(options);
};
/**
* Factory method for a worker.
*
* @function
* @param options see constructor of {@link Worker}
* @returns {Worker} newly created worker
* @link Worker
*/
exports.worker = function (options) {
return new Worker(options);
};
// Expose core related prototypes
exports.Client = Client;
exports.Worker = Worker;
exports.Job = job.Job;