小龙虾OpenClaw安装笔记
安装NodeJS后,配置国内源码。
1 | npm config set strict-ssl false |
还要开启代理,因为安装过程要访问Github。然后再输入如下命令安装:
1 | npm install -g openclaw@latest |
按理说,输入下面的命令等一个 2 分钟,你会看到下面这种提示:已经添加了 500 多包。
安装NodeJS后,配置国内源码。
1 | npm config set strict-ssl false |
还要开启代理,因为安装过程要访问Github。然后再输入如下命令安装:
1 | npm install -g openclaw@latest |
按理说,输入下面的命令等一个 2 分钟,你会看到下面这种提示:已经添加了 500 多包。
Antlr (ANother Tool for Language Recognition) 是一个强大的跨语言语法解析器,可以用来读取、处理、执行或翻译结构化文本或二进制文件。 它被广泛用来构建语言,工具和框架。。ANTLR 根据语法定义生成解析器,解析器可以构建和遍历解析树。
所有编程语言的语法,都可以用ANTLR来定义。ANTLR提供了大量的官方 grammar 示例, 包含了各种常见语言,比如Java、SQL、Javascript、PHP等等。
谁在使用
介绍下树莓派没办法连接显示器和键盘的情况下怎样安装Ubuntu Server 22, 以及如何确定树莓派的 IP 地址并登陆进去等一些实用小技巧. 聪明的你还可以用这些学到的新技巧去扫描你的网络。
准备软件:
RabbitMQ任务调度默认是阻塞的,使用pika中的channel.start_consuming()的时候,
每次收到一条消息后会顺序执行完回调函数,发送ACK的确认消息,然后再执行下一条消息。
虽然说可同时接受多条消息,但是并不能同时处理这多条消息,那么需要自己在代码里面实现任务的并发调度。
在Python里面实现并发方式多种多样,有多线程、多进程、多协程方式,我演示下如何实现。
之前写过一篇 使用Ajax实现异步任务 的文章,
介绍了对于需要知道异步处理返回结果的情况,使用Ajax的轮训和长连接方式实现。
但是这两种方式都会生成大量的HTTP连接,对服务器资源是一种巨大的浪费,
这里正式介绍如果通过WebSocket + RabbitMQ来优雅的实现。
在教程第二篇里面我们学习了如何实现一个任务队列,异步方式去处理那些比较耗时的任务。 但是如果我们需要调用一个远程主机上面的方法,并且等待它的执行结果呢? 这种模式我们通常将它称为远程方法调用(RPC)。
这一篇我们将利用RabbitMQ来构建一个RPC服务,服务器上面有一个可返回斐波拉契数的函数。 客户端通过rpc调用来获取结果。
前面一篇通过使用direct类型的交换机代替fanout广播类型交换机,
实现了一个基于日志级别路由对应的消息的功能。
但是还是有它的局限性——它并不能根据多个条件来实现路由,只能通过完全匹配routing key,
灵活性不够。
比如我想实现仅仅对于那些error级别日志并且由kern生成的日志才记录到文件中。
前面一篇实现了一个非常基础的日志系统,交换机将所有接收到的消息广播到它所知道的多个接受者。
这一节我们更进一步,实现订阅部分消息的功能。比如我只讲那些ERROR级别的消息写入日志文件, 同时将所有日志打印到控制台上面。
前面一篇介绍的任务队列是每个消息只能被一个工作者取走。这一篇讲解发布/订阅消息模式, 在这个模式里面,一个消息可以被发送给多个消费者。
这里我通过一个简单的日志系统来说明,消息生产者会将日志发送给队列,然后多个订阅者可以接收到这条日志显示到不同的地方, 比如可以打印到文件中,同时打印到控制台上面。
这里演示的官网通过python使用消息队列的教程:https://www.rabbitmq.com/getstarted.html
先演示最简单的一个入门级别的hello world例子,
发送者发送一个字符串,接受者接收到消息后打印出来。然后再介绍怎样实现任务队列