小编Ale*_*exV的帖子

如何在Android上使用Retrofit处理"无互联网连接"

我想处理没有互联网连接的情况.通常我会跑:

ConnectivityManager cm =
    (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null &&
                  activeNetwork.isConnectedOrConnecting();
Run Code Online (Sandbox Code Playgroud)

(从此处)在将请求发送到网络之前,如果没有互联网连接则通知用户.

从我看到的Retrofit没有具体处理这种情况.如果没有互联网连接我会RetrofitError以超时为理由.

如果我想将这种检查结合到每个使用Retrofit的HTTP请求中,我应该怎么做?或者我应该这样做.

谢谢

亚历克斯

android retrofit

111
推荐指数
7
解决办法
7万
查看次数

Spring MVC可以处理多值查询参数吗?

有了这个http://myserver/find-by-phones?phone=123&phone=345请求,是否可以处理这样的事情:

@Controller
public class Controller{
    @RequestMapping("/find-by-phones")
    public String find(List<String> phones){
       ...
    }
}
Run Code Online (Sandbox Code Playgroud)

Spring MVC可以将多值param转换phonesStrings(或其他对象)列表吗?

谢谢.

亚历克斯

spring-mvc

44
推荐指数
2
解决办法
5万
查看次数

将Google Guava添加到Android项目 - 显着减慢了构建速度

将Google Guava r09添加到我们的Android项目后,构建时间显着增加,尤其是DEX生成阶段.我知道DEX生成需要我们所有的类+我们依赖的所有jar并将它们转换为DEX格式.番石榴是一个相当大的罐子,约1.1MB

  1. 这可能是构建放缓的原因吗?
  2. 有什么办法可以加快速度吗?

PS通常我是从Intellij构建的,但我也尝试使用Maven构建 - 结果相同.

谢谢

亚历克斯

java android build guava dex

16
推荐指数
1
解决办法
7785
查看次数

使用Solr索引多种语言

我们正在设置一个Solr索引文档,其中title字段可以是各种语言.谷歌搜索后,我找到了两个选项:

  1. 为每种语言定义不同的模式字段,即title_en,title_fr,...对每种语言应用不同的过滤器,然后使用相应的语言查询其中一个标题字段.
  2. 创建不同的Solr核心来处理每种语言并使我们的应用程序查询正确的Solr核心.

哪一个更好?有什么起伏?

谢谢

java lucene solr

12
推荐指数
1
解决办法
7019
查看次数

如何将Maven复制资源文件转换成WEB-INF/lib目录?

我正在使用NewRelic进行监控.我希望Maven将newrelic.jarnewrelic.yaml文件打包到WEB-INF/libwar文件中.使用newrelic.jar没有问题,因为它是一个简单的依赖项,但newrelic.yaml是一个资源文件.它驻留在资源目录中.我希望Maven(战争插件)WEB-INF/lib在打包战争时复制它.

谢谢.

亚历克斯

java war maven newrelic

7
推荐指数
1
解决办法
1万
查看次数

Spring-Hibernate持久化不会导致插入

我正在尝试实现一个简单的DAO.我有道:

@Repository("iUserDao")
@Transactional(readOnly = true)
public class UserDao implements IUserDao {
    private EntityManager entityManager;

    @PersistenceContext
    public void setEntityManager(EntityManager entityManager) {
        this.entityManager = entityManager;
    }

    @Override
    public User getById(int id) {
        return entityManager.find(User.class, id);
    }

    @Override
    public boolean save(User user) {
        entityManager.persist(user);
        entityManager.flush();
        return true;
    }

    @Override
    public boolean update(User user) {
        entityManager.merge(user);
        entityManager.flush();
        return true;
    }

    @Override
    public boolean delete(User user) {
        user = entityManager.getReference(User.class, user.getId());
        if (user == null)
            return false;
        entityManager.remove(user);
        entityManager.flush();
        return true;
    }
Run Code Online (Sandbox Code Playgroud)

一个实体:

@Entity
@Table(name …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate

6
推荐指数
1
解决办法
1万
查看次数

消耗一定量的内存时重启docker

我在一台机器上运行了多个docker进程,我想监视它们并在它通过某个内存阈值后重启docker进程.我可以让docker在达到内存阈值时重启它的进程吗?我有什么选择?

谢谢

亚历克斯

docker

6
推荐指数
2
解决办法
3405
查看次数

INSERT INTO table SELECT Redshift 超慢

我们有一张大桌子,我们需要对其进行深度复制。由于我们没有足够的空磁盘空间来在一个语句中创建它,因此我尝试批量创建它。但是批次似乎运行得非常非常缓慢。

我正在运行这样的东西:

   INSERT INTO new_table 
   SELECT * FROM old_table 
    WHERE creation_date between '2018-01-01' AND '2018-02-01'
Run Code Online (Sandbox Code Playgroud)

即使查询返回少量行 ~ 1K

SELECT * FROM old_table 
WHERE creation_date between '2018-01-01' AND '2018-02-01'
Run Code Online (Sandbox Code Playgroud)
  • INSERT查询花了大约50分钟才能完成。

  • old_table有〜286M行〜400列

  • creation_date是一个SORTKEY小号

解释计划看起来像:

XN Seq Scan on old_table  (cost=0.00..4543811.52 rows=178152 width=136883)
      Filter: ((creation_date <= '2018-02-01'::date) AND (creation_date >= '2018 01-01'::date))
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  • INSERT查询花费这么长时间的原因可能是什么?

amazon-web-services amazon-redshift

6
推荐指数
1
解决办法
3475
查看次数

序列化对象,用于在Android上发送Intent内部

我想在Android上的活动和服务之间传递对象.这样做的直接方法是让你的对象实现Serializable或Parcelable.

  • Serializable 这是相对糟糕的表现.
  • Parcelable 另一方面,要求我自己实现和维护序列化,即始终记住将来更新它.

我正在考虑使用Jackson Json序列化程序来完成这项任务.它比串行化中构建的Java更快,并且不需要我编写和维护序列化代码.

你认为呢?

serialization android json

5
推荐指数
1
解决办法
2373
查看次数

导入 jar 中的 logback.xml 会导致警告

我在我的应用程序中使用 Neo4j 服务器,使用 REST 服务器启动嵌入式图形数据库。现在,neo4j-server 工件已包含logback.xml在其中。我还使用 logback 进行日志记录 => 我明白了

16:17:13,233 |-WARN in - Resource [logback.xml] occurs multiple times on the classpath.
16:17:13,233 |-WARN in - Resource [logback.xml] occurs at [file:/D:/dev/graph-server/target/classes/logback.xml]
16:17:13,233 |-WARN in - Resource [logback.xml] occurs at [jar:file:/C:/Users/user123/.m2/repository/org/neo4j/app/neo4j-server/1.8/neo4j-server-1.8.jar!/logback.xml]
Run Code Online (Sandbox Code Playgroud)

logback.xml多次出现的警告。

我应该怎么办?我不想关闭 logback 状态日志记录,每次启动应用程序时看到此消息有点令人不安。

谢谢。

亚历克斯

PS-我的logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
        <Target>System.out</Target>
        <encoder>
            <pattern>%d{dd/MM/yyyy HH:mm:ss } [%t] %-5p %logger{32} - %m%n</pattern>
        </encoder>
    </appender>
    <logger name="com.myapp" level="INFO"/>
    <root level="WARN">
        <appender-ref ref="Console"/>
    </root>
</configuration>
Run Code Online (Sandbox Code Playgroud)

java logback neo4j

2
推荐指数
1
解决办法
2080
查看次数

如何在 Spark 中查找多个列的不同值

我有一个 RDD,我想找到多个列的不同值。

例子:

Row(col1=a, col2=b, col3=1), Row(col1=b, col2=2, col3=10)), Row(col1=a1, col2=4, col3=10)

我想找一张地图:

col1=[a,b,a1]
col2=[b,2,4]
col3=[1,10]
Run Code Online (Sandbox Code Playgroud)

Dataframe 可以帮助更快/更简单地计算吗?

更新:

我对 RDD 的解决方案是:

col1=[a,b,a1]
col2=[b,2,4]
col3=[1,10]
Run Code Online (Sandbox Code Playgroud)

谢谢

apache-spark pyspark

2
推荐指数
1
解决办法
1万
查看次数