github.com/weedge/lib@v0.0.0-20230424045628-a36dcc1d90e4/pool/asynctask/example_asynctask_test.go (about)

     1  package asynctask
     2  
     3  import (
     4  	"fmt"
     5  )
     6  
     7  type testTask struct {
     8  	Name string
     9  }
    10  
    11  func newTestTask(Name string) (m *testTask) {
    12  	m = &testTask{
    13  		Name: Name,
    14  	}
    15  
    16  	return m
    17  }
    18  
    19  func (m *testTask) Run() (err error) {
    20  	//println("name", m.Name)
    21  	if m.Name == "err" {
    22  		return fmt.Errorf("wo qu err le")
    23  	}
    24  
    25  	return
    26  }
    27  
    28  func ExampleAsyncTask_NewAsyncTask() {
    29  	asyncTask, err := NewAsyncTask("async.task.test", 3, 3, func(err error) {
    30  		return
    31  	})
    32  	if err != nil {
    33  		println("err", err.Error())
    34  		return
    35  	}
    36  	asyncTask, err = NewAsyncTask("async.task.test", 3, 3, func(err error) {
    37  		return
    38  	})
    39  	if err != nil {
    40  		println("err", err.Error())
    41  		return
    42  	}
    43  
    44  	asyncTask.Post(newTestTask("hello"))
    45  
    46  	// Output:
    47  	//
    48  }
    49  
    50  func ExampleAsyncTask_Ops() {
    51  	asyncTask, err := NewAsyncTask("async.task.test", 3, 3, func(err error) {
    52  		fmt.Println("Run err", err.Error())
    53  		return
    54  	})
    55  	if err != nil {
    56  		println("err", err.Error())
    57  		return
    58  	}
    59  
    60  	asyncTask.Post(newTestTask("hello"), newTestTask("err"))
    61  
    62  	asyncTask.Close()
    63  
    64  	// Output:
    65  	// Run err wo qu err le
    66  }