startTime, err := time.Parse("15:04:05", startTimeInterval)
if err != nil {
return err
}
endTime, err := time.Parse("15:04:05", endTimeInterval)
if err != nil {
return err
}
result: [a-b a-b a-b]
...
import (
"sync"
)
...
type rawCatalogArray struct {
sync.RWMutex
TagArray []RawCatalogTag `xml:",any"`
TagMap map[string]string `xml:"-"`
}
func (a *rawCatalogArray) SetKeyValue(key, value string) {
a.Lock()
defer a.Unlock()
a.TagMap[key] = value
}
func (a *rawCatalogArray) GetKeyValue(key string) (value string, e error) {
a.RLock()
defer a.RUnlock()
var exist bool
value, exist = a.TagMap[key]
if exist {
return
}
e = catErrors.New("\"%s\" is not a valid tag.", key)
return
}
...
- скорее всего запустить бинарник можно зайдя по ssh
- скорее всего не будет возможности запустить бинарник через supervisor (который перезапустит приложение в случае если то упадёт)
- скорее всего есть ограничение на форки, что бы golang приложение принудительно не создавало форков поможет вызов функции https://golang.org/pkg/runtime/#LockOSThread
- скорее всего не будет возможности ходить в приложение по http так как будет запрет на открытые порты... и придётся искать обходные пути
- так же не уверен что shared хостинг позволит подключить dll
На VPS все эти проблемы снимаются.