func (s *ApiServer) EnqueJob(ctx context.Context, job *pb.FeedJob) (*pb.FeedJob, error) { // Time ordered job queue key := store.NewFlakeKey(store.TableJobFeed, s.mdb.NextId()) job.Key = key.String() job.Created = time.Now().Unix() job.Updated = time.Now().Unix() bytes, err := proto.Marshal(job) if err != nil { return nil, err } s.mdb.Put(key.Bytes(), bytes) return job, nil }
func (s *ApiServer) FinishJob(ctx context.Context, job *pb.FeedJob) (*pb.FeedJob, error) { kb, _ := hex.DecodeString(job.Key) if err := s.mdb.Delete(kb); err != nil { return nil, err } // indicating the feed of the target id is archived key := store.NewMetaKey(store.TableJobHistory, job.TargetId) job.Key = key.String() job.Status = "done" job.Updated = time.Now().Unix() bytes, err := proto.Marshal(job) if err != nil { return nil, err } s.mdb.Put(key.Bytes(), bytes) return job, nil }