Merge branch 'create-client-daemon' into 'master'

Create client daemon

See merge request saburly/kiviscrapworker!1
This commit was merged in pull request #1.
This commit is contained in:
Bilal Catic
2020-05-08 10:18:20 +00:00
4 changed files with 52 additions and 1 deletions

4
.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
*.log
*.pid
.env

View File

@@ -1,3 +1,7 @@
# kiviscrapworker
Kivi scraping worker
Kivi scraping worker
## Setup
Copy `example.env` to the `.env` and set desired values

7
example.env Normal file
View File

@@ -0,0 +1,7 @@
# Check default values in kiviscraplib/config/config.go
CLIENT_CONNECTIONS_COUNT = Number of connections to initiate when client worker daemon starts
CLIENT_CONNECTION_TIMEOUT = Number of seconds to wait before trying to connect to the worker server again
WORKER_SERVER_ADDRESS = Address in form of IP:PORT (127.0.0.1:1338)
REQUEST_MESSAGE_PREFIX = Prefix that worker server adds to the request message when sending to the worker client. Use double quotes if prefix has a space (eg. "URL ")
PROXY_LIST_BASE_URL = Base url where proxy list can be fetched. Proxy type(https, socks5) will be concatenated to this URL

36
main.go Normal file
View File

@@ -0,0 +1,36 @@
package main
import (
"github.com/sevlyar/go-daemon"
"gitlab.com/saburly/kiviscraplib/config"
"gitlab.com/saburly/kiviscraplib/workerclient"
"log"
)
func main() {
config.InitClientConfig()
cntxt := &daemon.Context{
PidFileName: "sample.pid",
PidFilePerm: 0644,
LogFileName: "sample.log",
LogFilePerm: 0640,
WorkDir: "./",
Umask: 027,
Args: []string{"[kivi scraping worker client]"},
}
d, err := cntxt.Reborn()
if err != nil {
log.Fatal("Unable to run: ", err)
}
if d != nil {
return
}
// TODO: Handle error
defer cntxt.Release()
go workerclient.StartClientConnections()
select {} // Wait forever
}