我想知道大多数开发人员如何使用这两个Laravel工具。
在Laravel中,您可以使用“服务”或“作业”来处理业务逻辑(让我们仅讨论不可排队的作业,仅讨论那些在同一流程中运行的作业)。
例如,一个用户想要创建一个实体,比如说一本书,您可以使用服务来处理该实体的创建或调度一个工作。
使用工作将是这样的:
class PostBook extends Job
{
...
public function handle(Book $bookEntity)
{
// Business logic here.
}
...
}
class BooksController extends Controller
{
public function store(Request $request)
{
...
dispatch(new PostBook($request->all()));
...
}
}
Run Code Online (Sandbox Code Playgroud)
使用服务,将是这样的:
class BookService
{
public function store(Request $request)
{
// Business logic here.
}
}
class BooksController extends Controller
{
public function store(Request $request)
{
...
// I could inject the service instead.
$bookService = $this->app()->make(App\Services\BookService::class);
$bookService->store($request);
... …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 mongo-compose 运行图像。
撰写文件是这样的:
version: '2'
services:
db:
image: mongo:3.4.10
volumes:
- ./data/mongodb:/data/db
Run Code Online (Sandbox Code Playgroud)
我跑完之后
docker-compose -p DropDesk up -d db
Run Code Online (Sandbox Code Playgroud)
我收到“完成”消息,但容器未运行。检查容器日志,我看到以下消息:
exception in initAndListen: 20 Attempted to create a lock file on a read-only directory: /data/db, terminating
Run Code Online (Sandbox Code Playgroud)
此外,如果我从撰写文件中删除卷映射,容器就可以正常工作。
我使用的是 Centos 7(内核 5),我禁用了 selinux,我使用的是 Docker 引擎 18.09)。
任何人都知道为什么会发生这种情况?我已经几个小时了,没有结果。