我读过一些文章说这git bisect
很棒,但我不是母语,我不明白为什么它很棒.
你能否在一些代码示例上展示一下它的惊人之处?它就像svn blame
?
我正在尝试从Google Play商店抓取最新评论,但我需要发帖请求以获取最新评论.
随着邮差它的工作,我得到了理想的回应.
但终端中的post请求给我一个服务器错误
例如:对于此页面https://play.google.com/store/apps/details?id=com.supercell.boombeach
curl -H "Content-Type: application/json" -X POST -d '{"id": "com.supercell.boombeach", "reviewType": '0', "reviewSortOrder": '0', "pageNum":'0'}' https://play.google.com/store/getreviews
Run Code Online (Sandbox Code Playgroud)
给出了服务器错误
Scrapy只是忽略了这一行:
frmdata = {"id": "com.supercell.boombeach", "reviewType": 0, "reviewSortOrder": 0, "pageNum":0}
url = "https://play.google.com/store/getreviews"
yield Request(url, callback=self.parse, method="POST", body=urllib.urlencode(frmdata))
Run Code Online (Sandbox Code Playgroud) 我想SELECT * FROM myindex where _id not in (1, 2, 3)
在Elasticsearch中实现类似的功能.一种方法是:
{
"from": 0,
"size": 200,
"query": {
"bool": {
"must": {
"bool": {
"must_not": {
"bool": {
"should": [
{
"match": {
"_id": {
"query": 1,
"type": "phrase"
}
}
},
{
"match": {
"_id": {
"query": 2,
"type": "phrase"
}
}
},
{
"match": {
"_id": {
"query": 3,
"type": "phrase"
}
}
}
]
}
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是这种方法不适用于大型数组,因为这将是一个巨大的查询.有一个更好的方法吗?
几天前有人问我这个问题我没有答案:
因为HTTP是无状态协议.当我们打开www.google.com时,它可以被称为REST呼叫吗?
我的想法:
当我们在google.com上进行搜索时,所有信息都会通过Cookie和网址参数传递.它看起来像一个无国籍的请求.但搜索结果并不独立于用户的过去请求.搜索结果特定于用户兴趣和行为.现在,它看起来不像无状态请求.
我知道这是一个老问题,我已经阅读了许多SO答案,例如为什么HTTP是无状态协议?但我仍然无法理解在谷歌或亚马逊(基于过去购买的推荐)或任何其他基于用户活动的推荐网站上跟踪用户活动时会发生什么.
它是RESTful还是RESTless?
如果我想创建一个Web应用程序,我在其中使用REST架构并仍提供特定于用户的响应,该怎么办?
我一般都知道,不应该在多进程之间共享对象以及可能由此产生的问题.但我的要求是必须这样做.
我有一个复杂的对象,其中包含所有漂亮的协同程序async-await.一个函数,它在自己的单独进程中对此对象运行长时间运行的进程.现在,我想在主进程中运行一个IPython shell,并对这个复杂对象进行操作,而长时间运行的进程正在另一个进程中运行.
为了跨进程共享这个复杂的对象,我尝试了在SO上遇到的多处理BaseManager方法:
import multiprocessing
import multiprocessing.managers as m
class MyManager(m.BaseManager):
pass
MyManager.register('complex_asynio_based_class', complex_asynio_based_class)
manager = MyManager()
manager.start()
c = manager.complex_asynio_based_class()
process = multiprocessing.Process(
target=long_running_process,
args=(c,),
)
Run Code Online (Sandbox Code Playgroud)
但这会给出错误:
Unserializable message: Traceback (most recent call last):
File "/usr/3.6/lib/python3.6/multiprocessing/managers.py", line 283, in serve_client
send(msg)
File "/usr/3.6/lib/python3.6/multiprocessing/connection.py", line 206, in send
self._send_bytes(_ForkingPickler.dumps(obj))
File "/usr/3.6/lib/python3.6/multiprocessing/reduction.py", line 51, in dumps
cls(buf, protocol).dump(obj)
TypeError: can't pickle coroutine objects
Run Code Online (Sandbox Code Playgroud)
它不起作用,因为对象中有协同程序.我无法想出一个更好的解决方案来让它工作,我坚持下去.
如果它不是Python,我会为长时间运行的进程生成一个线程,并且仍然可以对它进行操作.
如果我没有错,这应该是多进程应用程序运行后台进程的常用模式,以及只对它执行一些只读操作的主进程,就像我的情况一样,而不是修改它.我想知道它是如何完成的?
在多进程中如何共享无法拾取的复杂对象?
python asynchronous multiprocessing python-3.x python-asyncio
我正在针对Python的confluent-kafka使用本地Java实现对Apache Kafka Producer进行测试,以查看哪个具有最大吞吐量。
我正在使用docker-compose部署一个包含3个Kafka代理和3个zookeeper实例的Kafka集群。我的docker撰写文件:https : //paste.fedoraproject.org/paste/bn7rr2~YRuIihZ06O3Q6vw/raw
这是一个非常简单的代码,其中包含Python confluent-kafka的大多数默认选项,并且在Java生产者中进行了一些配置更改,以匹配confluent-kafka的配置。
Python代码:
from confluent_kafka import Producer
producer = Producer({'bootstrap.servers': 'kafka-1:19092,kafka-2:29092,kafka-3:39092', 'linger.ms': 300, "max.in.flight.requests.per.connection": 1000000, "queue.buffering.max.kbytes": 1048576, "message.max.bytes": 1000000,
'default.topic.config': {'acks': "all"}})
ss = '0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357'
def f():
import time
start = time.time()
for i in xrange(1000000):
try:
producer.produce('test-topic', ss)
except Exception:
producer.poll(1)
try:
producer.produce('test-topic', ss)
except Exception:
producer.flush(30)
producer.produce('test-topic', ss)
producer.poll(0)
producer.flush(30)
print(time.time() - start)
if __name__ == '__main__':
f()
Run Code Online (Sandbox Code Playgroud)
Java实现。配置与librdkafka中的config相同。按照Edenhill的建议更改了linger.ms和回调。
package com.amit.kafka;
import org.apache.kafka.clients.producer.*;
import org.apache.kafka.common.serialization.LongSerializer;
import org.apache.kafka.common.serialization.StringSerializer;
import java.nio.charset.Charset;
import java.util.Properties; …
Run Code Online (Sandbox Code Playgroud) 这是我的代码:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){
//android.support.v7.app.ActionBar actionBar = getSupportActionBar();
//actionBar.setTitle("Android");
ActionBar actionBar = getActionBar();
actionBar.setTitle("Droid");
}
Run Code Online (Sandbox Code Playgroud)
在使用getSupportActionBar()时,我的应用程序与kitkat和其他新版本运行良好,但使用getActionBar导致错误.
这是错误:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.hide()' on a null object reference
at com.github.domain.geoquiz.QuizActivity.onCreate(QuizActivity.java:57)
at android.app.Activity.performCreate(Activity.java:5933)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372
Run Code Online (Sandbox Code Playgroud)
为什么?来自android文档:
警告:确保从相应的包中导入ActionBar类(和相关的API):
如果支持的API级别低于11:import android.support.v7.app.ActionBar
如果仅支持API级别11及更高级别:import android.app.ActionBar
现在为什么这个应用程序崩溃了?
我正在使用kafka-python,我想知道是否有办法显示所有主题.
像这样的东西:
./bin/kafka-topics.sh --list --zookeeper localhost:2181
Run Code Online (Sandbox Code Playgroud) 我已经阅读了(gob)的文档,我遇到了一些问题:
现在我知道如何对结构和解码进行编码:
func main() {
s1 := &S{
Field1: "Hello Gob",
Field2: 999,
}
log.Println("Original value:", s1)
buf := new(bytes.Buffer)
err := gob.NewEncoder(buf).Encode(s1)
if err != nil {
log.Println("Encode:", err)
return
}
s2 := &S{}
err = gob.NewDecoder(buf).Decode(s2)
if err != nil {
log.Println("Decode:", err)
return
}
log.Println("Decoded value:", s2)
Run Code Online (Sandbox Code Playgroud)
}
但我不知道这种方法的目的是否gob.Register()
有人可以解释我何时使用它以及为什么?
我用3个类编写测试代码,并使用Chain of Responsibility设计模式,下面的代码
我打印print(c._abc is b._abc)
,答案是真的,但我原来认为两者是不同的.
然后,在第2轮,我取消注释self._abc = kwargs
并评论其他3行,答案变为False.
为什么会这样?
import abc
class A:
__metaclass__ = abc.ABCMeta
_abc = {}
def __init__(self,successor=None,**kwargs):
self._successor = successor
@abc.abstractmethod
def handlerRequest(self):
pass
class B(A):
def __init__(self,successor=None,**kwargs):
self._successor = successor
print(kwargs)
# self._abc = kwargs # round 2<---uncomment here
self._abc['a'] = kwargs['a'] # round 2<---comment here
self._abc['b'] = kwargs['b'] # round 2<---comment here
self._abc['Hello'] = 'World' # round 2<---comment here
def handlerRequest(self):
if (self._successor is not None):
self._successor.handlerRequest()
print(self._abc)
class …
Run Code Online (Sandbox Code Playgroud) python ×4
apache-kafka ×2
python-2.7 ×2
python-3.x ×2
android ×1
asynchronous ×1
git ×1
git-bisect ×1
go ×1
gob ×1
http ×1
librdkafka ×1
rest ×1
scrapy ×1
stateless ×1
web-crawler ×1