-
Notifications
You must be signed in to change notification settings - Fork 4
/
README
92 lines (63 loc) · 2.96 KB
/
README
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
Multi script langyage Stream Processing Offload Agent
-----------------------------------------------------
This agent receive SPOP message and process it with script languages. The
language register callback with a message. Each callback receive the list
of arguments with types according with the language capabilities. The
callback write variables which are sent as response when the processing
is done.
Prerequirement
----------------
You have to install the development packages, either from the
distribution repositories or from the source.
CentOS/RHEL: sudo yum install python3-devel
The current minimal python version compatible with this library is 2.7.
It's recommended to use python version 3 where possible due to python 2 deprecation.
Compilation
---------------
The server currently supports Lua and Python. Type "make" with the options:
USE_LUA=1 and/or USE_PYTHON=1.
You can add LUA_INC=.. LUA_LIB=.. to the make command to set the paths to
the lua header files and lua libraries.
Similarly, you can add PYTHON_INC=.. PYTHON_LIB=.. to the make command to set the paths to
the python header files and python libraries.
By default, it will try to compile by detecting the default python 3 parameters.
It will fall back to python 2 if python 3 is not available.
Start the service
---------------------
After you have compiled it, to start the service, you just need to use "spoa"
binary:
$> ./spoa -h
Usage: ./spoa [-h] [-d] [-p <port>] [-n <num-workers>]
-h Print this message
-d Enable the debug mode
-p <port> Specify the port to listen on (default: 12345)
-n <num-workers> Specify the number of workers (default: 5)
-f <file> Load script according with the supported languages
The file processor is recognized using the extension. .lua or .luac for lua and
.py for python. Start example:
$> ./spoa -d -f ps_lua.lua
$> ./spoa -d -f ps_python.py
Configure
-------------
Sample configuration are join to this server:
spoa-server.conf : The HAProxy configuration file using SPOE server
spoa-server.spoe.conf : The SPOP description file used by HAProxy
ps_lua.lua : Processing Lua example
ps_python.py : Processing Python example
Considerations
------------------
This server is a beta version. It works fine, but some improvement will be
welcome:
Main process:
* Improve log management: Today the log are sent on stdout.
* Improve process management: The dead process are ignored.
* Implement systemd integration.
* Implement threads: It would be fine to implement thread working. Shared
memory is welcome for managing database connection pool and something like
that.
* Add PHP support and some other languages.
Python:
* Improve reporting: Catch python error message and report it in the right
place. Today the error are dumped on stdout. How using syslog for logging
stack traces ?
Maybe some other things...