Ship large files concurrently
- Concurrent and high speed shipping
- Ships in the same machine (Non-TCP)
- Ships between two machines (TCP)
go get github.com/yashishdua/shipper
Config | Description |
---|---|
Source | Source file path |
Destination | Destination file path |
BatchSize | Total characters to be processed in 1 concurrent batch. Default is 10000 |
func main() {
shipper := shipper.NewShipper(shipper.Config{
Source: "test.log",
Destination: "test2.log",
BatchSize: 5000, // Total characters to be processed in 1 concurrent batch
})
if err := shipper.ShipAndDock(); err != nil {
fmt.Printf("Error in ShipAndDock: %s", err.Error())
}
}
Config | Description |
---|---|
TCP Host | Destination host where to ship data |
TCP Port | Destination port where to ship data |
Source | Source file path |
Destination | Destination file path |
BatchSize | Total characters to be processed in 1 concurrent batch. Default is 10000 |
func main() {
shipper := shipper.NewShipper(shipper.Config{
Source: "test.log",
BatchSize: 5000, // Total characters to be processed in 1 concurrent batch
TCP: shipper.TCP{
Host: "127.0.0.1",
Port: 8001,
},
})
if err := shipper.Ship(); err != nil {
fmt.Printf("Error in Shipping: %s", err.Error())
}
}
TCP Destination only requires file path and port
func main() {
shipper := shipper.NewShipper(shipper.Config{
Destination: "test2.log",
TCP: shipper.TCP{
Port: 8001,
},
})
if err := shipper.Dock(); err != nil {
fmt.Printf("Error in Docking: %s", err.Error())
}
}