Runtime Retries Limit (#1163)

* Implement Runtime Retries

* Remove Debug

* Action Feedback

* Refactor Retries

* Fix WithRetires Typo
This commit is contained in:
ben-toogood 2020-02-07 12:02:41 +00:00 committed by GitHub
parent 19c454ec4b
commit fe7f5a4134
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 90 additions and 70 deletions

View File

@ -92,7 +92,7 @@ func (r *runtime) run(events <-chan Event) {
// check running services
r.RLock()
for _, service := range r.services {
if service.Running() {
if !service.ShouldStart() {
continue
}
@ -104,7 +104,7 @@ func (r *runtime) run(events <-chan Event) {
}
r.RUnlock()
case service := <-r.start:
if service.Running() {
if !service.ShouldStart() {
continue
}
// TODO: check service error
@ -245,7 +245,7 @@ func (r *runtime) Delete(s *Service) error {
log.Debugf("Runtime deleting service %s", s.Name)
if s, ok := r.services[s.Name]; ok {
// check if running
if !s.Running() {
if s.Running() {
delete(r.services, s.Name)
return nil
}

View File

@ -51,6 +51,8 @@ type CreateOptions struct {
Output io.Writer
// Type of service to create
Type string
// Retries before failing deploy
Retries int
}
// ReadOptions queries runtime services
@ -78,6 +80,13 @@ func WithCommand(args ...string) CreateOption {
}
}
// WithRetries sets the max retries attemps
func WithRetries(retries int) CreateOption {
return func(o *CreateOptions) {
o.Retries = retries
}
}
// WithEnv sets the created service environment
func WithEnv(env []string) CreateOption {
return func(o *CreateOptions) {
@ -99,7 +108,7 @@ func ReadService(service string) ReadOption {
}
}
// WithVersion confifgures service version
// ReadVersion confifgures service version
func ReadVersion(version string) ReadOption {
return func(o *ReadOptions) {
o.Version = version

View File

@ -2,6 +2,7 @@ package runtime
import (
"io"
"strconv"
"sync"
"time"
@ -19,6 +20,9 @@ type service struct {
err error
updated time.Time
retries int
maxRetries int
// output for logs
output io.Writer
@ -54,9 +58,10 @@ func newService(s *Service, c CreateOptions) *service {
Env: c.Env,
Args: args,
},
closed: make(chan bool),
output: c.Output,
updated: time.Now(),
closed: make(chan bool),
output: c.Output,
updated: time.Now(),
maxRetries: c.Retries,
}
}
@ -65,7 +70,17 @@ func (s *service) streamOutput() {
go io.Copy(s.output, s.PID.Error)
}
// Running returns true is the service is running
func (s *service) ShouldStart() bool {
s.RLock()
defer s.RUnlock()
if s.running {
return false
}
return s.maxRetries < s.retries
}
func (s *service) Running() bool {
s.RLock()
defer s.RUnlock()
@ -77,7 +92,7 @@ func (s *service) Start() error {
s.Lock()
defer s.Unlock()
if s.running {
if !s.ShouldStart() {
return nil
}
@ -167,9 +182,11 @@ func (s *service) Wait() {
// save the error
if err != nil {
log.Debugf("Error running service (%v): %v", s.Name, err)
s.retries++
s.Metadata["status"] = "error"
s.Metadata["error"] = err.Error()
s.Metadata["retries"] = strconv.Itoa(s.retries)
s.err = err
} else {
s.Metadata["status"] = "done"

View File

@ -1,5 +1,5 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: micro/go-micro/runtime/service/proto/runtime.proto
// source: runtime/service/proto/runtime.proto
package go_micro_runtime
@ -38,7 +38,7 @@ func (m *Service) Reset() { *m = Service{} }
func (m *Service) String() string { return proto.CompactTextString(m) }
func (*Service) ProtoMessage() {}
func (*Service) Descriptor() ([]byte, []int) {
return fileDescriptor_4bc91a8efec81434, []int{0}
return fileDescriptor_2434d8152598889b, []int{0}
}
func (m *Service) XXX_Unmarshal(b []byte) error {
@ -101,7 +101,7 @@ func (m *Event) Reset() { *m = Event{} }
func (m *Event) String() string { return proto.CompactTextString(m) }
func (*Event) ProtoMessage() {}
func (*Event) Descriptor() ([]byte, []int) {
return fileDescriptor_4bc91a8efec81434, []int{1}
return fileDescriptor_2434d8152598889b, []int{1}
}
func (m *Event) XXX_Unmarshal(b []byte) error {
@ -166,7 +166,7 @@ func (m *CreateOptions) Reset() { *m = CreateOptions{} }
func (m *CreateOptions) String() string { return proto.CompactTextString(m) }
func (*CreateOptions) ProtoMessage() {}
func (*CreateOptions) Descriptor() ([]byte, []int) {
return fileDescriptor_4bc91a8efec81434, []int{2}
return fileDescriptor_2434d8152598889b, []int{2}
}
func (m *CreateOptions) XXX_Unmarshal(b []byte) error {
@ -220,7 +220,7 @@ func (m *CreateRequest) Reset() { *m = CreateRequest{} }
func (m *CreateRequest) String() string { return proto.CompactTextString(m) }
func (*CreateRequest) ProtoMessage() {}
func (*CreateRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_4bc91a8efec81434, []int{3}
return fileDescriptor_2434d8152598889b, []int{3}
}
func (m *CreateRequest) XXX_Unmarshal(b []byte) error {
@ -265,7 +265,7 @@ func (m *CreateResponse) Reset() { *m = CreateResponse{} }
func (m *CreateResponse) String() string { return proto.CompactTextString(m) }
func (*CreateResponse) ProtoMessage() {}
func (*CreateResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_4bc91a8efec81434, []int{4}
return fileDescriptor_2434d8152598889b, []int{4}
}
func (m *CreateResponse) XXX_Unmarshal(b []byte) error {
@ -302,7 +302,7 @@ func (m *ReadOptions) Reset() { *m = ReadOptions{} }
func (m *ReadOptions) String() string { return proto.CompactTextString(m) }
func (*ReadOptions) ProtoMessage() {}
func (*ReadOptions) Descriptor() ([]byte, []int) {
return fileDescriptor_4bc91a8efec81434, []int{5}
return fileDescriptor_2434d8152598889b, []int{5}
}
func (m *ReadOptions) XXX_Unmarshal(b []byte) error {
@ -355,7 +355,7 @@ func (m *ReadRequest) Reset() { *m = ReadRequest{} }
func (m *ReadRequest) String() string { return proto.CompactTextString(m) }
func (*ReadRequest) ProtoMessage() {}
func (*ReadRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_4bc91a8efec81434, []int{6}
return fileDescriptor_2434d8152598889b, []int{6}
}
func (m *ReadRequest) XXX_Unmarshal(b []byte) error {
@ -394,7 +394,7 @@ func (m *ReadResponse) Reset() { *m = ReadResponse{} }
func (m *ReadResponse) String() string { return proto.CompactTextString(m) }
func (*ReadResponse) ProtoMessage() {}
func (*ReadResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_4bc91a8efec81434, []int{7}
return fileDescriptor_2434d8152598889b, []int{7}
}
func (m *ReadResponse) XXX_Unmarshal(b []byte) error {
@ -433,7 +433,7 @@ func (m *DeleteRequest) Reset() { *m = DeleteRequest{} }
func (m *DeleteRequest) String() string { return proto.CompactTextString(m) }
func (*DeleteRequest) ProtoMessage() {}
func (*DeleteRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_4bc91a8efec81434, []int{8}
return fileDescriptor_2434d8152598889b, []int{8}
}
func (m *DeleteRequest) XXX_Unmarshal(b []byte) error {
@ -471,7 +471,7 @@ func (m *DeleteResponse) Reset() { *m = DeleteResponse{} }
func (m *DeleteResponse) String() string { return proto.CompactTextString(m) }
func (*DeleteResponse) ProtoMessage() {}
func (*DeleteResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_4bc91a8efec81434, []int{9}
return fileDescriptor_2434d8152598889b, []int{9}
}
func (m *DeleteResponse) XXX_Unmarshal(b []byte) error {
@ -503,7 +503,7 @@ func (m *UpdateRequest) Reset() { *m = UpdateRequest{} }
func (m *UpdateRequest) String() string { return proto.CompactTextString(m) }
func (*UpdateRequest) ProtoMessage() {}
func (*UpdateRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_4bc91a8efec81434, []int{10}
return fileDescriptor_2434d8152598889b, []int{10}
}
func (m *UpdateRequest) XXX_Unmarshal(b []byte) error {
@ -541,7 +541,7 @@ func (m *UpdateResponse) Reset() { *m = UpdateResponse{} }
func (m *UpdateResponse) String() string { return proto.CompactTextString(m) }
func (*UpdateResponse) ProtoMessage() {}
func (*UpdateResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_4bc91a8efec81434, []int{11}
return fileDescriptor_2434d8152598889b, []int{11}
}
func (m *UpdateResponse) XXX_Unmarshal(b []byte) error {
@ -572,7 +572,7 @@ func (m *ListRequest) Reset() { *m = ListRequest{} }
func (m *ListRequest) String() string { return proto.CompactTextString(m) }
func (*ListRequest) ProtoMessage() {}
func (*ListRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_4bc91a8efec81434, []int{12}
return fileDescriptor_2434d8152598889b, []int{12}
}
func (m *ListRequest) XXX_Unmarshal(b []byte) error {
@ -604,7 +604,7 @@ func (m *ListResponse) Reset() { *m = ListResponse{} }
func (m *ListResponse) String() string { return proto.CompactTextString(m) }
func (*ListResponse) ProtoMessage() {}
func (*ListResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_4bc91a8efec81434, []int{13}
return fileDescriptor_2434d8152598889b, []int{13}
}
func (m *ListResponse) XXX_Unmarshal(b []byte) error {
@ -651,42 +651,42 @@ func init() {
}
func init() {
proto.RegisterFile("micro/go-micro/runtime/service/proto/runtime.proto", fileDescriptor_4bc91a8efec81434)
proto.RegisterFile("runtime/service/proto/runtime.proto", fileDescriptor_2434d8152598889b)
}
var fileDescriptor_4bc91a8efec81434 = []byte{
// 526 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0x4b, 0x6b, 0xdb, 0x40,
0x10, 0x8e, 0x2d, 0xc7, 0x4e, 0x46, 0x55, 0x31, 0x4b, 0x29, 0x6a, 0xe8, 0xc3, 0xe8, 0xd2, 0x5c,
0x2a, 0x83, 0x42, 0xe9, 0xeb, 0x18, 0xbb, 0xbd, 0xd4, 0x14, 0x14, 0xf2, 0x03, 0xb6, 0xf6, 0x10,
0x44, 0x23, 0xad, 0xaa, 0x5d, 0x09, 0x7c, 0xea, 0xb5, 0x7f, 0xaf, 0xff, 0xa8, 0xec, 0x4b, 0x0f,
0x47, 0xca, 0xc5, 0xb7, 0x99, 0xd9, 0xd9, 0x4f, 0xdf, 0x63, 0x11, 0x44, 0x69, 0xb2, 0x2d, 0xd8,
0xf2, 0x8e, 0xbd, 0xd3, 0x45, 0x51, 0x66, 0x22, 0x49, 0x71, 0xc9, 0xb1, 0xa8, 0x92, 0x2d, 0x2e,
0xf3, 0x82, 0x89, 0x7a, 0x1a, 0xaa, 0x8e, 0xcc, 0xef, 0x58, 0xa8, 0xb6, 0x43, 0x33, 0x0f, 0xfe,
0x8d, 0x60, 0x76, 0xa3, 0x6f, 0x10, 0x02, 0x93, 0x8c, 0xa6, 0xe8, 0x8f, 0x16, 0xa3, 0xcb, 0xf3,
0x58, 0xd5, 0xc4, 0x87, 0x59, 0x85, 0x05, 0x4f, 0x58, 0xe6, 0x8f, 0xd5, 0xd8, 0xb6, 0xe4, 0x39,
0x4c, 0x39, 0x2b, 0x8b, 0x2d, 0xfa, 0x8e, 0x3a, 0x30, 0x1d, 0xb9, 0x86, 0xb3, 0x14, 0x05, 0xdd,
0x51, 0x41, 0xfd, 0xc9, 0xc2, 0xb9, 0x74, 0xa3, 0xb7, 0xe1, 0xe1, 0x67, 0x43, 0xf3, 0xc9, 0x70,
0x63, 0x36, 0xd7, 0x99, 0x28, 0xf6, 0x71, 0x7d, 0xf1, 0xe2, 0x0b, 0x78, 0x9d, 0x23, 0x32, 0x07,
0xe7, 0x17, 0xee, 0x0d, 0x35, 0x59, 0x92, 0x67, 0x70, 0x5a, 0xd1, 0xfb, 0x12, 0x0d, 0x2f, 0xdd,
0x7c, 0x1e, 0x7f, 0x1c, 0x05, 0x29, 0x9c, 0xae, 0x2b, 0xcc, 0x84, 0x14, 0x24, 0xf6, 0x79, 0x2d,
0x48, 0xd6, 0xe4, 0x25, 0x9c, 0x4b, 0x06, 0x5c, 0xd0, 0x34, 0x57, 0x57, 0x9d, 0xb8, 0x19, 0x48,
0xb9, 0xc6, 0x3f, 0xa3, 0xca, 0xb6, 0x6d, 0x23, 0x26, 0x1d, 0x23, 0x82, 0x1b, 0xf0, 0xae, 0x0b,
0xa4, 0x02, 0x7f, 0xe4, 0x22, 0x61, 0x19, 0x97, 0xab, 0x5b, 0x96, 0xa6, 0x34, 0xdb, 0xf9, 0xa3,
0x85, 0x23, 0x57, 0x4d, 0x2b, 0x55, 0x60, 0x56, 0xf9, 0x63, 0x35, 0x95, 0xa5, 0x74, 0x91, 0x95,
0x22, 0x2f, 0x85, 0x75, 0x51, 0x77, 0xc1, 0x1f, 0x0b, 0x1a, 0xe3, 0xef, 0x12, 0xb9, 0x20, 0x57,
0x0d, 0x33, 0x29, 0xc7, 0x8d, 0x5e, 0x0c, 0xba, 0xda, 0x90, 0xfe, 0x04, 0x33, 0xa6, 0x49, 0x29,
0xa9, 0x6e, 0xf4, 0xe6, 0xe1, 0xa5, 0x0e, 0xf7, 0xd8, 0xee, 0x07, 0x73, 0x78, 0x6a, 0x09, 0xf0,
0x9c, 0x65, 0x1c, 0x83, 0x5b, 0x70, 0x63, 0xa4, 0xbb, 0x96, 0xca, 0x36, 0xa1, 0x7e, 0xab, 0x0e,
0xde, 0x8c, 0x0d, 0xc4, 0x69, 0x02, 0x09, 0xbe, 0x6a, 0x58, 0xab, 0xf3, 0x43, 0x43, 0x59, 0xeb,
0x7c, 0xf5, 0x90, 0x72, 0x8b, 0x46, 0x43, 0x78, 0x0d, 0x4f, 0x34, 0x8e, 0xa6, 0x4b, 0xde, 0xc3,
0x99, 0x21, 0xc4, 0x55, 0x0c, 0x8f, 0x3a, 0x56, 0xaf, 0x06, 0x2b, 0xf0, 0x56, 0x78, 0x8f, 0xc7,
0x19, 0x2f, 0xdd, 0xb3, 0x28, 0xc6, 0xbd, 0x15, 0x78, 0xb7, 0xf9, 0x8e, 0x1e, 0x8f, 0x6b, 0x51,
0x0c, 0xae, 0x07, 0xee, 0xf7, 0x84, 0x0b, 0x83, 0x2a, 0x5d, 0xd0, 0xed, 0x51, 0x2e, 0x44, 0x7f,
0x1d, 0x98, 0xc5, 0xfa, 0x94, 0x6c, 0x60, 0xaa, 0x5f, 0x02, 0x19, 0x7c, 0x3d, 0xe6, 0xeb, 0x17,
0x8b, 0xe1, 0x05, 0x43, 0xf7, 0x84, 0x7c, 0x83, 0x89, 0xcc, 0x89, 0x0c, 0xe4, 0x6a, 0xa1, 0x5e,
0x0f, 0x1d, 0xd7, 0x40, 0x1b, 0x98, 0x6a, 0x8f, 0xfb, 0x78, 0x75, 0x32, 0xec, 0xe3, 0x75, 0x10,
0x8f, 0x82, 0xd3, 0xd6, 0xf6, 0xc1, 0x75, 0xa2, 0xeb, 0x83, 0x3b, 0x48, 0x45, 0xc9, 0x94, 0x41,
0xf4, 0xc9, 0x6c, 0xe5, 0xd5, 0x27, 0xb3, 0x9d, 0x5f, 0x70, 0xf2, 0x73, 0xaa, 0x7e, 0xdd, 0x57,
0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0xcd, 0x8e, 0xbb, 0xe1, 0xf0, 0x05, 0x00, 0x00,
var fileDescriptor_2434d8152598889b = []byte{
// 521 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0x4b, 0x6f, 0xd3, 0x40,
0x10, 0xae, 0xeb, 0x34, 0x69, 0xc7, 0x18, 0x45, 0x2b, 0x84, 0x4c, 0xc5, 0x23, 0x32, 0x07, 0x7a,
0x72, 0xa4, 0x54, 0x88, 0xd7, 0xb1, 0x09, 0x5c, 0x88, 0x90, 0x5c, 0xf5, 0x07, 0x2c, 0xc9, 0x08,
0x59, 0xd4, 0xbb, 0xc6, 0xbb, 0xb6, 0x94, 0x13, 0x57, 0xfe, 0x1e, 0xff, 0x08, 0xed, 0x2b, 0xb6,
0x53, 0x9b, 0x4b, 0x6e, 0x3b, 0xb3, 0x33, 0x9f, 0xbf, 0xc7, 0xca, 0xf0, 0xba, 0xac, 0x98, 0xcc,
0x72, 0x9c, 0x0b, 0x2c, 0xeb, 0x6c, 0x83, 0xf3, 0xa2, 0xe4, 0x92, 0xcf, 0x6d, 0x37, 0xd1, 0x15,
0x99, 0xfe, 0xe0, 0x49, 0x9e, 0x6d, 0x4a, 0x9e, 0xd8, 0x7e, 0xfc, 0xd7, 0x83, 0xc9, 0xad, 0xd9,
0x20, 0x04, 0x46, 0x8c, 0xe6, 0x18, 0x79, 0x33, 0xef, 0xea, 0x22, 0xd5, 0x67, 0x12, 0xc1, 0xa4,
0xc6, 0x52, 0x64, 0x9c, 0x45, 0xa7, 0xba, 0xed, 0x4a, 0xf2, 0x14, 0xc6, 0x82, 0x57, 0xe5, 0x06,
0x23, 0x5f, 0x5f, 0xd8, 0x8a, 0xdc, 0xc0, 0x79, 0x8e, 0x92, 0x6e, 0xa9, 0xa4, 0xd1, 0x68, 0xe6,
0x5f, 0x05, 0x8b, 0x37, 0xc9, 0xe1, 0x67, 0x13, 0xfb, 0xc9, 0x64, 0x6d, 0x27, 0x57, 0x4c, 0x96,
0xbb, 0x74, 0xbf, 0x78, 0xf9, 0x09, 0xc2, 0xce, 0x15, 0x99, 0x82, 0xff, 0x13, 0x77, 0x96, 0x9a,
0x3a, 0x92, 0x27, 0x70, 0x56, 0xd3, 0xfb, 0x0a, 0x2d, 0x2f, 0x53, 0x7c, 0x3c, 0x7d, 0xef, 0xc5,
0x39, 0x9c, 0xad, 0x6a, 0x64, 0x52, 0x09, 0x92, 0xbb, 0x62, 0x2f, 0x48, 0x9d, 0xc9, 0x73, 0xb8,
0x50, 0x0c, 0x84, 0xa4, 0x79, 0xa1, 0x57, 0xfd, 0xb4, 0x69, 0x28, 0xb9, 0xd6, 0x3f, 0xab, 0xca,
0x95, 0x6d, 0x23, 0x46, 0x1d, 0x23, 0xe2, 0x5b, 0x08, 0x6f, 0x4a, 0xa4, 0x12, 0xbf, 0x15, 0x32,
0xe3, 0x4c, 0xa8, 0xd1, 0x0d, 0xcf, 0x73, 0xca, 0xb6, 0x91, 0x37, 0xf3, 0xd5, 0xa8, 0x2d, 0x95,
0x0a, 0x64, 0x75, 0x74, 0xaa, 0xbb, 0xea, 0xa8, 0x5c, 0xe4, 0x95, 0x2c, 0x2a, 0xe9, 0x5c, 0x34,
0x55, 0xfc, 0xdb, 0x81, 0xa6, 0xf8, 0xab, 0x42, 0x21, 0xc9, 0x75, 0xc3, 0x4c, 0xc9, 0x09, 0x16,
0xcf, 0x06, 0x5d, 0x6d, 0x48, 0x7f, 0x80, 0x09, 0x37, 0xa4, 0xb4, 0xd4, 0x60, 0xf1, 0xea, 0xe1,
0x52, 0x87, 0x7b, 0xea, 0xe6, 0xe3, 0x29, 0x3c, 0x76, 0x04, 0x44, 0xc1, 0x99, 0xc0, 0xf8, 0x0e,
0x82, 0x14, 0xe9, 0xb6, 0xa5, 0xb2, 0x4d, 0xa8, 0xdf, 0xaa, 0x83, 0x37, 0xe3, 0x02, 0xf1, 0x9b,
0x40, 0xe2, 0xcf, 0x06, 0xd6, 0xe9, 0x7c, 0xd7, 0x50, 0x36, 0x3a, 0x5f, 0x3c, 0xa4, 0xdc, 0xa2,
0xd1, 0x10, 0x5e, 0xc1, 0x23, 0x83, 0x63, 0xe8, 0x92, 0xb7, 0x70, 0x6e, 0x09, 0x09, 0x1d, 0xc3,
0x7f, 0x1d, 0xdb, 0x8f, 0xc6, 0x4b, 0x08, 0x97, 0x78, 0x8f, 0xc7, 0x19, 0xaf, 0xdc, 0x73, 0x28,
0xd6, 0xbd, 0x25, 0x84, 0x77, 0xc5, 0x96, 0x1e, 0x8f, 0xeb, 0x50, 0x2c, 0x6e, 0x08, 0xc1, 0xd7,
0x4c, 0x48, 0x8b, 0xaa, 0x5c, 0x30, 0xe5, 0x51, 0x2e, 0x2c, 0xfe, 0xf8, 0x30, 0x49, 0xcd, 0x2d,
0x59, 0xc3, 0xd8, 0xbc, 0x04, 0x32, 0xf8, 0x7a, 0xec, 0xd7, 0x2f, 0x67, 0xc3, 0x03, 0x96, 0xee,
0x09, 0xf9, 0x02, 0x23, 0x95, 0x13, 0x19, 0xc8, 0xd5, 0x41, 0xbd, 0x1c, 0xba, 0xde, 0x03, 0xad,
0x61, 0x6c, 0x3c, 0xee, 0xe3, 0xd5, 0xc9, 0xb0, 0x8f, 0xd7, 0x41, 0x3c, 0x1a, 0xce, 0x58, 0xdb,
0x07, 0xd7, 0x89, 0xae, 0x0f, 0xee, 0x20, 0x15, 0x2d, 0x53, 0x05, 0xd1, 0x27, 0xb3, 0x95, 0x57,
0x9f, 0xcc, 0x76, 0x7e, 0xf1, 0xc9, 0xf7, 0xb1, 0xfe, 0x75, 0x5f, 0xff, 0x0b, 0x00, 0x00, 0xff,
0xff, 0x43, 0x9c, 0x97, 0x62, 0xe1, 0x05, 0x00, 0x00,
}

View File

@ -1,5 +1,5 @@
// Code generated by protoc-gen-micro. DO NOT EDIT.
// source: micro/go-micro/runtime/service/proto/runtime.proto
// source: runtime/service/proto/runtime.proto
package go_micro_runtime
@ -47,12 +47,6 @@ type runtimeService struct {
}
func NewRuntimeService(name string, c client.Client) RuntimeService {
if c == nil {
c = client.NewClient()
}
if len(name) == 0 {
name = "go.micro.runtime"
}
return &runtimeService{
c: c,
name: name,

View File

@ -17,8 +17,8 @@ message Service {
string version = 2;
// git url of the source
string source = 3;
// service metadata
map<string,string> metadata = 4;
// service metadata
map<string,string> metadata = 4;
}
message Event {