Я использую очередь задач go и google, чтобы создать некоторые задания синхронизации.Отказ от ответа ядра из очереди задач
Я успешно передаю данные методу работника, но я не могу его размонтировать, чтобы использовать его.
Я пробовал разные способы, я получаю сообщение об ошибке распаковать
err um &json.SyntaxError{msg:"invalid character 'i' in literal false (expecting 'a')", Offset:2}
Это, как я буду передавать данные в очередь
keys := make(map[string][]string)
keys["filenames"] = req.FileNames // []string
t := taskqueue.NewPOSTTask("/deletetask", keys)
_, err = taskqueue.Add(ctx, t, "delete")
И это, как я пытался распаковать его
type Files struct {
fileNames string `json:"filenames"`
}
func worker(w http.ResponseWriter, r *http.Request) {
c := appengine.NewContext(r)
var objmap map[string]json.RawMessage
b, err := ioutil.ReadAll(r.Body)
if err != nil {
c.Debugf("err io %#v", err)
}
c.Debugf("b %#v", string(b[:])) //Print: b "filenames=1.txt&filenames=2.txt"
err = json.Unmarshal(b, &objmap)
if err != nil {
c.Debugf("err um %#v", err)
}
//this didn't work as well same err
f := []Files{}
err = json.Unmarshal(b, &f)
}
Переданных к задаче параметров не json, поэтому unmarshalling как таковой не будет работать. Ваш код может быть почти идентичен приведенному здесь примеру: https://cloud.google.com/appengine/docs/go/taskqueue/overview-push – Greg